操作图片类(C#)

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


namespace Baolee.GeneralMethod
{
 /// <summary>
 /// ImageClass 的摘要说明。
 /// </summary>
 public class ImageClass
 {

  // Fields
  public string ErrMessage;
  private int ImageHeight;
  private int ImageWidth;
  private Image ResourceImage;

  /// <summary>
  ///
  /// </summary>
  /// <param name="ImageFileName"></param>
  public ImageClass(string ImageFileName)
  {
   this.ResourceImage = Image.FromFile(ImageFileName);
   this.ErrMessage = "";
  }
  /// <summary>
  ///
  /// </summary>
  /// <param name="Percent"></param>
  /// <returns></returns>
  public Image GetReducedImage(double Percent)
  {
   try
   {
    Image.GetThumbnailImageAbort callback = new Image.GetThumbnailImageAbort(this.ThumbnailCallback);
    this.ImageWidth = Convert.ToInt32((double) (this.ResourceImage.Width * Percent));
    this.ImageHeight = Convert.ToInt32((double) (this.ResourceImage.Width * Percent));
    return this.ResourceImage.GetThumbnailImage(this.ImageWidth, this.ImageHeight, callback, IntPtr.Zero);
   }
   catch (Exception exception)
   {
    this.ErrMessage = exception.Message;
    return null;
   }
  }
  /// <summary>
  ///
  /// </summary>
  /// <param name="Percent"></param>
  /// <param name="targetFilePath"></param>
  /// <returns></returns>
  public bool GetReducedImage(double Percent, string targetFilePath)
  {
   try
   {
    Image.GetThumbnailImageAbort callback = new Image.GetThumbnailImageAbort(this.ThumbnailCallback);
    this.ImageWidth = Convert.ToInt32((double) (this.ResourceImage.Width * Percent));
    this.ImageHeight = Convert.ToInt32((double) (this.ResourceImage.Width * Percent));
    Image image = this.ResourceImage.GetThumbnailImage(this.ImageWidth, this.ImageHeight, callback, IntPtr.Zero);
    image.Save(targetFilePath, ImageFormat.Jpeg);
    image.Dispose();
    return true;
   }
   catch (Exception exception)
   {
    this.ErrMessage = exception.Message;
    return false;
   }
  }
  /// <summary>
  ///
  /// </summary>
  /// <param name="Width"></param>
  /// <param name="Height"></param>
  /// <returns></returns>
  public Image GetReducedImage(int Width, int Height)
  {
   try
   {
    Image.GetThumbnailImageAbort callback = new Image.GetThumbnailImageAbort(this.ThumbnailCallback);
    return this.ResourceImage.GetThumbnailImage(Width, Height, callback, IntPtr.Zero);
   }
   catch (Exception exception)
   {
    this.ErrMessage = exception.Message;
    return null;
   }
  }
  /// <summary>
  ///
  /// </summary>
  /// <param name="Width"></param>
  /// <param name="Height"></param>
  /// <param name="targetFilePath"></param>
  /// <returns></returns>
  public bool GetReducedImage(int Width, int Height, string targetFilePath)
  {
   try
   {
    Image.GetThumbnailImageAbort callback = new Image.GetThumbnailImageAbort(this.ThumbnailCallback);
    Image image = this.ResourceImage.GetThumbnailImage(Width, Height, callback, IntPtr.Zero);
    image.Save(targetFilePath);
    image.Dispose();
    return true;
   }
   catch (Exception exception)
   {
    this.ErrMessage = exception.Message;
    return false;
   }
  }
  /// <summary>
  ///
  /// </summary>
  /// <returns></returns>
  public bool ThumbnailCallback()
  {
   return false;
  }
 }
}
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rjzou2006

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值