asp.net 生成縮略圖的實(shí)例源代碼

字號(hào):


    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對(duì)象
    ///
    /// 縮略圖的寬度
    /// 縮略圖的高度
    /// 縮略圖的image對(duì)象
    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對(duì)象
    ///
    /// 縮略圖的寬度百分比 如:需要百分之80,就填0.8
    /// 縮略圖的image對(duì)象
    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對(duì)象
    ///
    /// 縮略圖的寬度百分比 如:需要百分之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;
    }
    }
    }