asp.net生成缩略图及给原始图加水印
[作者]:菩提树下的杨过 [来源]:互联网 [收录时间]:2007-9-9 11:09:06
 
ASP.net生成缩略图及给原始图加水印,代码如下: 

  using System.IO; 
  using System.Drawing.Imaging; 
  private void Button1_ServerClick(object sender, System.EventArgs e) 
  { 
  Graphics g=null; 
  System.Drawing.Image upimage=null; 
  System.Drawing.Image thumimg=null; 
  System.Drawing.Image simage=null; 
  Bitmap outputfile=null; 
  try 
  { 
  string extension = Path.GetExtension(File1.PostedFile.FileName).ToUpper(); 
  string filename = DateTime.Now.ToString("yyyyMMddhhmmss"); 
  string smallpath = Server.MapPath(".")+"/smallimg/"; 
  string bigpath = Server.MapPath(".")+"/bigimg/"; 
  int width,height,newwidth,newheight; 
  System.Drawing.Image.GetThumbnailImageAbort callb =new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback); 
  if(!Directory.Exists(smallpath)) 
  Directory.CreateDirectory(smallpath); 
  if(!Directory.Exists(bigpath)) 
  Directory.CreateDirectory(bigpath); 
  Stream upimgfile = File1.PostedFile.InputStream; 
  string simagefile = Server.MapPath("a8logo.jpg"); //要加水印的文件 
  simage=System.Drawing.Image.FromFile(simagefile); 
  upimage= System.Drawing.Image.FromStream(upimgfile); //上传的图片 
  width = upimage.Width; 
  height = upimage.Height; 
  if(width>height) 
  { 
  newwidth=200; 
  newheight =(int)((double)height/(double)width * (double)newwidth); 
  } 
  else 
  { 
  newheight=200; 
  newwidth=(int)((double)width/(double)height * (double)newheight); 
  } 
  thumimg = upimage.GetThumbnailImage(newwidth,newheight,callb,IntPtr.Zero); 
  outputfile=new Bitmap(upimage); 
  g=Graphics.FromImage(outputfile); 
  g.DrawImage(simage,new Rectangle(upimage.Width-simage.Width,upimage.Height-simage.Height,upimage.Width,upimage.Height),0,0,upimage.Width,upimage.Height,GraphicsUnit.Pixel); 
  string newpath = bigpath + filename + extension; //原始图路径 
  string thumpath = smallpath + filename + extension; //缩略图路径 
  outputfile.Save(newpath); 
  thumimg.Save(thumpath); 
  outputfile.Dispose(); 
  } 
  catch(Exception ex) 
  { 
  throw ex; 
  } 
  finally 
  { 
  if(g!=null) 
  g.Dispose(); 
  if(thumimg!=null) 
  thumimg.Dispose(); 
  if(upimage!=null) 
  upimage.Dispose(); 
  if(simage!=null) 
  simage.Dispose(); 
  } 
  } 
  public bool ThumbnailCallback() 
  { 
  return false; 
  }