asp.net 生成缩略图代码

时间:2021-10-10 09:52:31

代码如下:


using System; 
using System.Data; 
using System.Configuration; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
using System.IO; 
using System.Drawing; 
using System.Drawing.Imaging; 

/// <summary> 
/// 图片处理类 
/// 1、生成缩略图片或按照比例改变图片的大小和画质 
/// 2、将生成的缩略图放到指定的目录下 
/// </summary> 
public class ImageClass 

public System.Drawing.Image ResourceImage; 
private int ImageWidth; 
private int ImageHeight; 

public string ErrMessage; 

/// <summary> 
/// 类的构造函数 
/// </summary> 
/// <param name="ImageFileName">图片文件的全路径名称</param> 
public ImageClass(string ImageFileName) 

ResourceImage = System.Drawing.Image.FromFile(ImageFileName); 
ErrMessage = ""; 


public bool ThumbnailCallback() 

return false; 


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

try 

System.Drawing.Image ReducedImage; 

System.Drawing.Image.GetThumbnailImageAbort callb = new System.Drawing.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 

System.Drawing.Image ReducedImage; 

System.Drawing.Image.GetThumbnailImageAbort callb = new System.Drawing.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 System.Drawing.Image GetReducedImage(double Percent) 

try 

System.Drawing.Image ReducedImage; 

System.Drawing.Image.GetThumbnailImageAbort callb = new System.Drawing.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 

System.Drawing.Image ReducedImage; 

System.Drawing.Image.GetThumbnailImageAbort callb = new System.Drawing.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;