在ASP.NET里轻松实现缩略图

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO; 
using System.Drawing.Imaging;

namespace eMeng.Exam
{
/// <summary>
/// Thumbnail 的摘要说明。
/// </summary>

public class Thumbnail : System.Web.UI.Page
{
    
protected System.Web.UI.WebControls.Label Label1;
    
protected System.Web.UI.WebControls.Button Button1;

    
private void Page_Load(object sender, System.EventArgs e)
    
{
        
// 在此处放置用户代码以初始化页面
        Label1.Text = "<h3>在ASP.NET里轻松实现缩略图</h3>"
        Button1.Text 
= "上载并显示缩略图"

    }


    
Web 窗体设计器生成的代码

    
private void Button1_Click(object sender, System.EventArgs e)
    
{
        HttpFileCollection MyFileColl 
= HttpContext.Current.Request.Files; 
        HttpPostedFile MyPostedFile 
= MyFileColl[0]; 

        
if (MyPostedFile.ContentType.ToString().ToLower().IndexOf("image"< 0
        

            Response.Write(
"无效的图形格式。"); 
            
return
        }
 
        GetThumbNail(MyPostedFile.FileName, 
100100
            MyPostedFile.ContentType.ToString(), 
false, MyPostedFile.InputStream); 
    }

    
private System.Drawing.Imaging.ImageFormat GetImageType(object strContentType) 
    

        
if ((strContentType.ToString().ToLower()) == "image/pjpeg"
        

            
return System.Drawing.Imaging.ImageFormat.Jpeg; 
        }
 
        
else if ((strContentType.ToString().ToLower()) == "image/gif"
        

            
return System.Drawing.Imaging.ImageFormat.Gif; 
        }
 
        
else if ((strContentType.ToString().ToLower()) == "image/bmp"
        

            
return System.Drawing.Imaging.ImageFormat.Bmp; 
        }
 
        
else if ((strContentType.ToString().ToLower()) == "image/tiff"
        

            
return System.Drawing.Imaging.ImageFormat.Tiff; 
        }
 
        
else if ((strContentType.ToString().ToLower()) == "image/x-icon"
        

            
return System.Drawing.Imaging.ImageFormat.Icon; 
        }
 
        
else if ((strContentType.ToString().ToLower()) == "image/x-png"
        

            
return System.Drawing.Imaging.ImageFormat.Png; 
        }
 
        
else if ((strContentType.ToString().ToLower()) == "image/x-emf"
        

            
return System.Drawing.Imaging.ImageFormat.Emf; 
        }
 
        
else if ((strContentType.ToString().ToLower()) == "image/x-exif"
        

            
return System.Drawing.Imaging.ImageFormat.Exif; 
        }
 
        
else if ((strContentType.ToString().ToLower()) == "image/x-wmf"
        

            
return System.Drawing.Imaging.ImageFormat.Wmf; 
        }
 
        
else 
        

            
return System.Drawing.Imaging.ImageFormat.MemoryBmp; 
        }
 
    }
 

    
private void GetThumbNail(string strFileName, int iWidth, int iheight, 
        
string strContentType, bool blnGetFromFile, System.IO.Stream ImgStream) 
    

        System.Drawing.Image oImg;
        
        
if (blnGetFromFile) 
        

            oImg 
= System.Drawing.Image.FromFile(strFileName); 
        }
 
        
else 
        

            oImg 
= System.Drawing.Image.FromStream(ImgStream); 
        }
 
        oImg 
= oImg.GetThumbnailImage(iWidth, iheight, null, IntPtr.Zero); 
        
string strGuid = System.Guid.NewGuid().ToString().ToUpper(); 
        
string strFileExt = strFileName.Substring(strFileName.LastIndexOf(".")); 
        Response.ContentType 
= strContentType; 
        MemoryStream MemStream 
= new MemoryStream(); 
        oImg.Save(MemStream, GetImageType(strContentType)); 
        MemStream.WriteTo(Response.OutputStream); 
    }
 

}

}

posted @ 2007-12-26 13:53  MangaGo  阅读(271)  评论(0编辑  收藏  举报