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

    using System.IO;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System;

    namespace LiTianPing.Web.Controls
    {
     /// <summary>
     /// 图片处理类
     /// 1、生成缩略图片或按照比例改变图片的大小和画质
     /// 2、将生成的缩略图放到指定的目录下
     /// </summary>
     public class ImageClass
     {
      public Image ResourceImage;
      private int ImageWidth;
      private int ImageHeight;
      public int imgWidth;

      public string ErrMessage;

      /// <summary>
      /// 类的构造函数
      /// </summary>
      /// <param name="ImageFileName">图片文件的全路径名称</param>
      public ImageClass(string ImageFileName)
      {
       ResourceImage=Image.FromFile(ImageFileName);
       imgWidth=ResourceImage.Width;
       ErrMessage="";
      }

      public bool ThumbnailCallback()
      {
       return false;
      }

      /// <summary>
      /// 生成缩略图重载方法1,返回缩略图的Image对象
      /// </summary>
      /// <param name="Width">缩略图的宽度</param>
      /// <param name="Height">缩略图的高度</param>
      /// <returns>缩略图的Image对象</returns>
      public Image GetReducedImage(int Width,int Height)
      {
       try
       {
        Image ReducedImage;

        Image.GetThumbnailImageAbort callb=new Image.GetThumbnailImageAbort(ThumbnailCallback);
        
        ReducedImage=ResourceImage.GetThumbnailImage(Width,Height,callb,IntPtr.Zero);
     
        return ReducedImage;
       }
       catch(Exception e)
       {
        ErrMessage=e.Message;
        return null;
       }
      }

      /// <summary>
      /// 生成缩略图重载方法2,将缩略图文件保存到指定的路径
      /// </summary>
      /// <param name="Width">缩略图的宽度</param>
      /// <param name="Height">缩略图的高度</param>
      /// <param name="targetFilePath">缩略图保存的全文件名,(带路径),参数格式:D:Images ilename.jpg</param>
      /// <returns>成功返回true,否则返回false</returns>
      public bool GetReducedImage(int Width,int Height,string targetFilePath)
      {
       try
       {
        Image ReducedImage;

        Image.GetThumbnailImageAbort callb=new Image.GetThumbnailImageAbort(ThumbnailCallback);
        
        ReducedImage=ResourceImage.GetThumbnailImage(Width,Height,callb,IntPtr.Zero);
        ReducedImage.Save(@targetFilePath,ImageFormat.Jpeg);

        ReducedImage.Dispose();
     
        return true;
       }
       catch(Exception e)
       {
        ErrMessage=e.Message;
        return false;
       }
      }

      /// <summary>
      /// 生成缩略图重载方法3,返回缩略图的Image对象
      /// </summary>
      /// <param name="Percent">缩略图的宽度百分比 如:需要百分之80,就填0.8</param> 
      /// <returns>缩略图的Image对象</returns>
      public Image GetReducedImage(double Percent)
      {
       try
       {
        Image ReducedImage;

        Image.GetThumbnailImageAbort callb=new Image.GetThumbnailImageAbort(ThumbnailCallback);

        ImageWidth=Convert.ToInt32(ResourceImage.Width*Percent);
        ImageHeight=Convert.ToInt32(ResourceImage.Width*Percent);
        
        ReducedImage=ResourceImage.GetThumbnailImage(ImageWidth,ImageHeight,callb,IntPtr.Zero);
     
        return ReducedImage;
       }
       catch(Exception e)
       {
        ErrMessage=e.Message;
        return null;
       }
      }

      /// <summary>
      /// 生成缩略图重载方法4,返回缩略图的Image对象
      /// </summary>
      /// <param name="Percent">缩略图的宽度百分比 如:需要百分之80,就填0.8</param> 
      /// <param name="targetFilePath">缩略图保存的全文件名,(带路径),参数格式:D:Images ilename.jpg</param>
      /// <returns>成功返回true,否则返回false</returns>
      public bool GetReducedImage(double Percent,string targetFilePath)
      {
       try
       {
        Image ReducedImage;

        Image.GetThumbnailImageAbort callb=new Image.GetThumbnailImageAbort(ThumbnailCallback);

        ImageWidth=Convert.ToInt32(ResourceImage.Width*Percent);
        ImageHeight=Convert.ToInt32(ResourceImage.Width*Percent);
        
        ReducedImage=ResourceImage.GetThumbnailImage(ImageWidth,ImageHeight,callb,IntPtr.Zero);

        ReducedImage.Save(@targetFilePath,ImageFormat.Jpeg);

        ReducedImage.Dispose();
     
        return true;
       }
       catch(Exception e)
       {
        ErrMessage=e.Message;
        return false;
       }
      }
      
      /// <summary>
      /// 生成缩略图重载方法5,返回缩略图的Image对象
      /// </summary>
      /// <param name="Width">缩略图的宽度</param>
      /// <param name="targetFilePath">>缩略图保存的全文件名,(带路径),参数格式:D:Images ilename.jpg</param>
      /// <returns></returns>
      public bool GetReducedImage(int Width,string targetFilePath)
      {
       try
       {
        Image ReducedImage;

        Image.GetThumbnailImageAbort callb=new Image.GetThumbnailImageAbort(ThumbnailCallback);

        
        double Percent=Convert.ToDouble(Width)/Convert.ToDouble(ResourceImage.Width);
        Percent=Convert.ToDouble(Percent.ToString("#0.0"));
        //ImageWidth=Convert.ToInt32(ResourceImage.Width*Percent);
        ImageWidth=Width;
        ImageHeight=Convert.ToInt32(ResourceImage.Height*Percent);
        
        ReducedImage=ResourceImage.GetThumbnailImage(ImageWidth,ImageHeight,callb,IntPtr.Zero);

        ReducedImage.Save(@targetFilePath,ImageFormat.Jpeg);

        ReducedImage.Dispose();
     
        return true;
       }
       catch(Exception e)
       {
        ErrMessage=e.Message;
        return false;
       }
      }
     }
    }

  • 相关阅读:
    java.security.InvalidKeyException: Illegal key size aes解密失败
    Java获取URL链接的文件类型
    解决eclipse中web项目出现Project facet Java version 1.8 is not supported.的问题
    探讨一下Java单例设计模式
    HTML5文件上传qq、百度、taobao等比较(改进支持三种状态提示)
    jQuery Ajax 上传文件改进
    Java POI 3.17写入、导入EXCEL性能测试
    jQuery Ajax 上传文件夹及文件
    Java 打包下载服务器上选中的文件或目录(带进度条提示)
    pio 背景色
  • 原文地址:https://www.cnblogs.com/xsmhero/p/1607454.html
Copyright © 2011-2022 走看看