萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> asp.net編程 >> ASP.net 生成縮略圖的實例源代碼

ASP.net 生成縮略圖的實例源代碼

   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、生成縮略圖片或按照比例改變圖片的大小和畫質

  /// 2、將生成的縮略圖放到指定的目錄下

  ///

  public class ImageClass

  {

  public System.Drawing.Image ResourceImage;

  private int ImageWidth;

  private int ImageHeight;

  public string ErrMessage;

  ///

  /// 類的構造函數

  ///

  /// 圖片文件的全路徑名稱

  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,將縮略圖文件保存到指定的路徑

  ///

  /// 縮略圖的寬度

  /// 縮略圖的高度

  /// 縮略圖保存的全文件名,(帶路徑),參數格式: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

  /// 縮略圖保存的全文件名,(帶路徑),參數格式: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;

  }

  }

  }

copyright © 萬盛學電腦網 all rights reserved