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;
                }
            }
    
        }
    }
    

      

  • 相关阅读:
    45个非常有用的Oracle查询语句(转自开源中国社区)
    Oracle创建表空间及用户
    table里面,怎么根据checkbox选择的一行中的某个单元格的值是否为空,来判断是否该选中
    点击上传按钮,文件自动上传
    如何给frame标签的src属性以及a标签的href属性自动设值
    Tomcat内存溢出的三种情况及解决办法分析
    Java中判断字符串是否为数字的五种方法
    SSH项目里面 忘记密码的邮件发送功能
    form表单提交时,action怎么带参数
    因为多余jar包,所报的错
  • 原文地址:https://www.cnblogs.com/YYkun/p/9377938.html
Copyright © 2011-2022 走看看