zoukankan      html  css  js  c++  java
  • 图片处理类

    /*****************************************************************
     * 创建人: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;
                }
            }
    
        }
    }
    

      

  • 相关阅读:
    51nod1179【思维】
    网络时间校准
    获取网络时间,减轻自己服务器的请求压力
    C# async/await异步编程深入理解
    C#中的异步编程--探索await与async关键字的奥妙之处,原来理解和使用异步编程可以这么简单
    "",string.Empty和null三者的区别
    三万字把SQL数据库的所有命令,函数,运算符讲得明明白白讲解,内容实在丰富
    C# await async Task
    C#异步编程 Task await的理解
    idea中更改下载源
  • 原文地址:https://www.cnblogs.com/YYkun/p/9377938.html
Copyright © 2011-2022 走看看