C#等比例缩放图片


  • 等比例缩放图片(C#)

  • private Bitmap ZoomImage(Bitmap bitmap, int destHeight, int destWidth)  
  • {  
  •     try  
  •     {  
  •         System.Drawing.Image sourImage = bitmap;  
  •         int width = 0, height = 0;  
  •         //按比例缩放             
  •         int sourWidth = sourImage.Width;  
  •         int sourHeight = sourImage.Height;  
  •         if (sourHeight > destHeight || sourWidth > destWidth)  
  •         {  
  •             if ((sourWidth * destHeight) > (sourHeight * destWidth))  
  •             {  
  •                 width = destWidth;  
  •                 height = (destWidth * sourHeight) / sourWidth;  
  •             }  
  •             else  
  •             {  
  •                 height = destHeight;  
  •                 width = (sourWidth * destHeight) / sourHeight;  
  •             }  
  •         }  
  •         else  
  •         {  
  •             width = sourWidth;  
  •             height = sourHeight;  
  •         }  
  •         Bitmap destBitmap = new Bitmap(destWidth, destHeight);  
  •         Graphics g = Graphics.FromImage(destBitmap);  
  •         g.Clear(Color.Transparent);  
  •         //设置画布的描绘质量           
  •         g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;  
  •         g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;  
  •         g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;  
  •         g.DrawImage(sourImage, new Rectangle((destWidth - width) / 2, (destHeight - height) / 2, width, height), 0, 0, sourImage.Width, sourImage.Height, GraphicsUnit.Pixel);  
  •         g.Dispose();  
  •         //设置压缩质量       
  •         System.Drawing.Imaging.EncoderParameters encoderParams = new System.Drawing.Imaging.EncoderParameters();  
  •         long[] quality = new long[1];  
  •         quality[0] = 100;  
  •         System.Drawing.Imaging.EncoderParameter encoderParam = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);  
  •         encoderParams.Param[0] = encoderParam;  
  •         sourImage.Dispose();  
  •         return destBitmap;  
  •     }  
  •     catch  
  •     {  
  •         return bitmap;  
  •     }  
  • }  

  • 免责声明!

    本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



     
    粤ICP备18138465号  © 2018-2025 CODEPRJ.COM