• 图片处理类


    /*****************************************************************
     * 创建人:sunwugang
     * 主要作用:图片处理类
     * 1、生成缩略图片或按照比例改变图片的大小和画质  
     * 2、将生成的缩略图放到指定的目录下  
     *  创建日期:2018-07-27
     *****************************************************************/
    namespace KK.TriageSys.Helper
    {
        using System;
        using System.Drawing;
        using System.Drawing.Imaging;
    
        public class ImageHelper
        {
            private static ImageHelper instance;
            public static ImageHelper Instance
            {
                get
                {
                    if (instance == null) instance = new ImageHelper();
                    return ImageHelper.instance;
                }
            }
    
            //图片宽
            private int ImageWidth;
            /// <summary>
            /// 图片高
            /// </summary>
            private int ImageHeight;
    
            /// <summary>   
            /// 根据文件路径获取图片对象   
            /// </summary>   
            /// <param name="ImageFileName">图片文件的全路径名称</param>   
            public Image GetImageByPath(string ImageFileName)
            {
                return Image.FromFile(ImageFileName);
            }
    
            public bool ThumbnailCallback()
            {
                return false;
            }
    
            /// <summary>   
            /// 生成缩略图重载方法1,返回缩略图的Image对象   
            /// </summary>   
            /// <param name="img">图片对象</param>   
            /// <param name="Width">缩略图的宽度</param>   
            /// <param name="Height">缩略图的高度</param>   
            /// <returns>缩略图的Image对象</returns>   
            public Image GetReducedImage(Image img,int Width, int Height)
            {
                try
                {
                    Image.GetThumbnailImageAbort callb = new Image.GetThumbnailImageAbort(ThumbnailCallback);
                    return img.GetThumbnailImage(Width, Height, callb, IntPtr.Zero);
                }
                catch (Exception ex)
                {
                    LogHelper.Default.SaveText("ImageHelper  GetReducedImage:" + ex.Message + ex.StackTrace);
                    return null;
                }
            }
    
            /// <summary>   
            /// 生成缩略图重载方法2,将缩略图文件保存到指定的路径   
            /// </summary>   
            /// <param name="img">图片对象</param>   
            /// <param name="Width">缩略图的宽度</param>   
            /// <param name="Height">缩略图的高度</param>   
            /// <param name="targetFilePath">缩略图保存的全文件名,(带路径),参数格式:D:Images ilename.jpg</param>   
            /// <returns>成功返回true,否则返回false</returns>   
            public bool GetReducedImage(Image img, int Width, int Height, string targetFilePath)
            {
                try
                {
                    Image ReducedImage;
                    Image.GetThumbnailImageAbort callb = new Image.GetThumbnailImageAbort(ThumbnailCallback);
                    ReducedImage = img.GetThumbnailImage(Width, Height, callb, IntPtr.Zero);
                    ReducedImage.Save(@targetFilePath, ImageFormat.Jpeg);
                    ReducedImage.Dispose();
                    return true;
                }
                catch (Exception ex)
                {
                    LogHelper.Default.SaveText("ImageHelper  GetReducedImage:" + ex.Message + ex.StackTrace);
                    return false;
                }
            }
    
            /// <summary>   
            /// 生成缩略图重载方法3,返回缩略图的Image对象   
            /// </summary>   
            /// <param name="img">图片对象</param>   
            /// <param name="Percent">缩略图的宽度百分比 如:需要百分之80,就填0.8</param>     
            /// <returns>缩略图的Image对象</returns>   
            public Image GetReducedImage(Image img, double Percent)
            {
                try
                {
                    Image ReducedImage;
                    Image.GetThumbnailImageAbort callb = new Image.GetThumbnailImageAbort(ThumbnailCallback);
                    ImageWidth = Convert.ToInt32(img.Width * Percent);
                    ImageHeight = Convert.ToInt32(img.Width * Percent);
                    ReducedImage = img.GetThumbnailImage(ImageWidth, ImageHeight, callb, IntPtr.Zero);
                    return ReducedImage;
                }
                catch (Exception ex)
                {
                    LogHelper.Default.SaveText("ImageHelper  GetReducedImage:" + ex.Message + ex.StackTrace);
                    return null;
                }
            }
    
            /// <summary>   
            /// 生成缩略图重载方法4,返回缩略图的Image对象   
            /// </summary>   
            /// <param name="img">图片对象</param>   
            /// <param name="Percent">缩略图的宽度百分比 如:需要百分之80,就填0.8</param>     
            /// <param name="targetFilePath">缩略图保存的全文件名,(带路径),参数格式:D:Images ilename.jpg</param>   
            /// <returns>成功返回true,否则返回false</returns>   
            public bool GetReducedImage(Image img, double Percent, string targetFilePath)
            {
                try
                {
                    Image ReducedImage;
                    Image.GetThumbnailImageAbort callb = new Image.GetThumbnailImageAbort(ThumbnailCallback);
                    ImageWidth = Convert.ToInt32(img.Width * Percent);
                    ImageHeight = Convert.ToInt32(img.Width * Percent);
                    ReducedImage = img.GetThumbnailImage(ImageWidth, ImageHeight, callb, IntPtr.Zero);
                    ReducedImage.Save(@targetFilePath, ImageFormat.Jpeg);
                    ReducedImage.Dispose();
                    return true;
                }
                catch (Exception ex)
                {
                    LogHelper.Default.SaveText("ImageHelper  GetReducedImage:" + ex.Message + ex.StackTrace);
                    return false;
                }
            }
    
        }
    }
    

      

  • 相关阅读:
    大型项目使用Automake/Autoconf完成编译配置
    用C语言编写Windows服务程序的五个步骤
    RPC的发展历史(本质就是双方定义好协议,传递参数后远程调用)
    libuv和libev 异步I/O库的比较
    zlog 程序日志的库 交叉编译(Linux生成ARM库,观察执行步骤)
    应用服务
    EvnetBus
    this指向
    CPU使用率
    数据量小,创建索引有必要吗
  • 原文地址:https://www.cnblogs.com/YYkun/p/9377938.html
Copyright © 2020-2023  润新知