ASP.NET生成缩略图源码

先看调用的方法:
using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
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;

public   partial   class  test_Default : System.Web.UI.Page
{
    
protected   void  Page_Load( object  sender, EventArgs e)
    {
        generalImage();
    }
    
private   void  generalImage()
    {
        
string  savePath  =   @" images/123.jpg " ; // 原图路径
         string  smallPath  =   @" images/small/123.jpg " ; // 要生成的小图
        savePath  =  Server.MapPath(savePath); // 这一步别忘了。
        smallPath  =  Server.MapPath(smallPath); // 同样这里也不要忘了。
        YD.Common.ImageClass imageClass  =   new  YD.Common.ImageClass();
        imageClass.ShowThumbnail(savePath, smallPath, 
200 153 ); // 这样调用
    }
}
生成小图的类:
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.Drawing;
using  System.Drawing.Imaging;
using  System.IO;
///   <summary>
///  ImageClass 的摘要说明
///   </summary>
namespace  YD.Common
{
    
public   class  ImageClass
    {
        
public   bool  ThumbnailCallback()
        {
            
return   false ;
        }
        
public   void  ShowThumbnail( string  oldfile,  string  newfile,  int  white,  int  height)
        {
            System.Drawing.Image image 
=  System.Drawing.Image.FromFile(oldfile);
            
// 获取原图高度和宽度
             int  oldh  =  image.Height;
            
int  oldw  =  image.Width;
            
int  neww, newh;
            neww 
=  white; newh  =  height;    // 直接设定新图的高宽,,

            
try
            {
                System.Drawing.Image.GetThumbnailImageAbort callb 
=   new  System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
                System.Drawing.Image bt 
=   new  System.Drawing.Bitmap(neww, newh);
                System.Drawing.Graphics gr 
=  System.Drawing.Graphics.FromImage(bt);
                gr.Clear(Color.White);
                gr.InterpolationMode 
=  System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                gr.DrawImage(image, 
new  Rectangle( 0 0 , neww, newh),  0 0 , oldw, oldh, GraphicsUnit.Pixel);
                
switch  (oldfile.Substring(oldfile.Length  -   3 ).ToUpper())
                {
                    
case   " JPG " :
                        bt.Save(newfile, ImageFormat.Jpeg);
                        
break ;
                    
case   " GIF " :
                        bt.Save(newfile, ImageFormat.Gif);
                        
break ;
                    
case   " PNG " :
                        bt.Save(newfile, ImageFormat.Png);
                        
break ;
                    
default :
                        bt.Save(newfile, ImageFormat.Jpeg);
                        
break ;
                }
                gr.Dispose();
                bt.Dispose();
                image.Dispose();
            }
            
catch  { }

        }
    }
}

你可能感兴趣的:(asp.net)