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;
    }
    }
    }