asp.net產生高品質縮圖通用函數(c#代碼

來源:互聯網
上載者:User

string strOutPath="";
   arrFilePath=myCommonMethod.UploadPic(Files,"/UpLoads/UpPicture/");
            this.GetThumbnailImage(120,150,100,System.IO.Path.GetFileName(arrFilePath[0].ToString()) ,out strOutPath);

//產生縮圖函數
  /// <summary>
  ///
  /// </summary>
  /// <param name="width">縮圖寬度</param>
  /// <param name="height">縮圖高度</param>
  /// <param name="level">縮減程度</param>
  /// <param name="file_id">檔案名稱</param>
  public void GetThumbnailImage(int width,int height,int level,string file_id,out string strOutParam)
  {
   string newfile= Request.PhysicalApplicationPath+"/UpLoads/UpPicture/"+"top_"+ file_id;

   System.Drawing.Image oldimage = System.Drawing.Image.FromFile(Request.PhysicalApplicationPath+"/UpLoads/UpPicture/"+ file_id);

   System.Drawing.Image thumbnailImage = oldimage.GetThumbnailImage(width, height,new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero);

   Bitmap output=new Bitmap(thumbnailImage);

   //處理JPG品質的函數
   ImageCodecInfo[] codecs=ImageCodecInfo.GetImageEncoders();
   ImageCodecInfo ici=null;
   foreach(ImageCodecInfo codec in codecs)
   {
    if(codec.MimeType=="image/jpeg")
    {
     ici=codec;
    }
   }
   EncoderParameters ep=new EncoderParameters();
   ep.Param[0]=new EncoderParameter(Encoder.Quality,(long)level);
   output.Save(newfile,ici,ep);
   //輸出參數
            strOutParam=newfile.Substring(newfile.LastIndexOf("/")+1);
   //釋放所有使用對象
   ep.Dispose();
   output.Dispose();
   oldimage.Dispose();
   thumbnailImage.Dispose();

//   //刪除源圖片
//   string file_path = "/UpLoads/UpPicture/"+"top_"+ file_id;
//   usageIO.DeletePath(Request.PhysicalApplicationPath+"images/article_images/"+ file_id);
////   Response.Write("<script >parent.Form1.A_Simg.value ='"+file_path+"';location.replace('Upload_Img.aspx')</script>");
  }

  bool ThumbnailCallback()
  {
   return false;
  }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.