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;
///
/// 圖片處理類
/// 1、生成縮略圖片或按照比例改變圖片的大小和畫質(zhì)
/// 2、將生成的縮略圖放到指定的目錄下
///
public class imageclass
{
public system.drawing.image resourceimage;
private int imagewidth;
private int imageheight;
public string errmessage;
///
/// 類的構(gòu)造函數(shù)
///
/// 圖片文件的全路徑名稱
public imageclass(string imagefilename)
{
resourceimage = system.drawing.image.fromfile(imagefilename);
errmessage = ;
}
public bool thumbnailcallback()
{
return false;
}
///
/// 生成縮略圖重載方法1,返回縮略圖的image對象
///
/// 縮略圖的寬度
/// 縮略圖的高度
/// 縮略圖的image對象
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;
}
}
///
/// 生成縮略圖重載方法2,將縮略圖文件保存到指定的路徑
///
/// 縮略圖的寬度
/// 縮略圖的高度
/// 縮略圖保存的全文件名,(帶路徑),參數(shù)格式:d:images ilename.jpg
/// 成功返回true,否則返回false
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;
}
}
///
/// 生成縮略圖重載方法3,返回縮略圖的image對象
///
/// 縮略圖的寬度百分比 如:需要百分之80,就填0.8
/// 縮略圖的image對象
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;
}
}
///
/// 生成縮略圖重載方法4,返回縮略圖的image對象
///
/// 縮略圖的寬度百分比 如:需要百分之80,就填0.8
/// 縮略圖保存的全文件名,(帶路徑),參數(shù)格式:d:images ilename.jpg
/// 成功返回true,否則返回false
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;
}
}
}
更多信息請查看IT技術(shù)專欄