程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> asp.net圖片上傳生成縮略圖的注意事項

asp.net圖片上傳生成縮略圖的注意事項

編輯:ASP.NET基礎
bitmap.Save(imgPath,ImageFormat.Jpeg);  
//這是保存縮略圖的一段代碼,其中的ImageFormat.Jpeg一定不能省略,即使你保存的文件本來就是jpg格式的,也不能去掉。因為如果去掉的話,生成的縮略圖比原始圖片還要大!


//另外,imgPath必須首先創建,否則會產生GDI+的一般性錯誤。
path=System.Web.HttpContext.Current.Server.MapPath(path);
使用if(!System.IO.Directory.Exists(path))System.IO.Directiory.CreateDirectory(path); 


//生成縮略圖,不要使用GetThumbnailImage方法,這個方法產生的縮略圖質量奇差無比,不能使用!



//簡單代碼如下:
     string path=System.Web.HttpContext.Current.Server.MapPath(strpath);
      sourcePath=System.Web.HttpContext.Current.Server.MapPath(sourcePath);

      if(!System.IO.Directory.Exists(path))System.IO.Directory.CreateDirectory(path);

      string sourceImage =sourcePath + fileName;
      string thumbImage = path + fileName;

     //原圖(引用)
   Image img=Image.FromFile(sourceImage,true);

   //實際縮略圖大小
   System.Drawing.Size size=Pic.ImgSize(maxW,maxH,img.Width,img.Height);
   int w=size.Width;
   int h=size.Height;

   //繪制縮略圖
   Bitmap bitmap=new Bitmap(w,h);
   Graphics g=Graphics.FromImage(bitmap);

   //設定縮略圖呈現質量
   g.CompositingQuality=System.Drawing.Drawing2D.CompositingQuality.HighQuality;
   g.SmoothingMode=System.Drawing.Drawing2D.SmoothingMode.HighQuality;
   //g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;

   //清潔背景
   g.Clear(Color.White);

      Rectangle thumbRect=new Rectangle(0,0,w,h);
      g.DrawImage(img,thumbRect);

      //保存縮略圖
   bitmap.Save(thumbImage,ImageFormat.Jpeg);

   //釋放內存
   bitmap.Dispose();
   img.Dispose();
   g.Dispose();

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved