c# 图片按比例缩放

 public static Bitmap GetThumbnail(Bitmap b, int destHeight, int destWidth)   
         {           
             System.Drawing.Image imgSource = b;      
             System.Drawing.Imaging.ImageFormat thisFormat = imgSource.RawFormat;  
             int sW = 0, sH = 0;          
             // 按比例缩放           
             int sWidth = imgSource.Width;
             int sHeight = imgSource.Height;
             if (sHeight > destHeight || sWidth > destWidth) 
             {               
                 if ((sWidth * destHeight) > (sHeight * destWidth))    
                 {                 
                     sW = destWidth;    
                     sH = (destWidth * sHeight) / sWidth;  
                 }               
                 else            
                 {           
                     sH = destHeight;    
                     sW = (sWidth * destHeight) / sHeight;    
                 }           
             }           
             else         
             {          
                 sW = sWidth;  
                 sH = sHeight;  
             }    
             Bitmap outBmp = new Bitmap(destWidth, destHeight);  
             Graphics g = Graphics.FromImage(outBmp);      
             g.Clear(Color.Transparent);         
             // 设置画布的描绘质量         
             g.CompositingQuality = CompositingQuality.HighQuality; 
             g.SmoothingMode = SmoothingMode.HighQuality;       
             g.InterpolationMode = InterpolationMode.HighQualityBicubic;    
             g.DrawImage(imgSource, new Rectangle((destWidth - sW) / 2, (destHeight - sH) / 2, sW, sH), 0, 0, imgSource.Width, imgSource.Height, GraphicsUnit.Pixel);     
             g.Dispose();      
             // 以下代码为保存图片时,设置压缩质量     
             EncoderParameters encoderParams = new EncoderParameters();  
             long[] quality = new long[1];      
             quality[0] = 100;      
             EncoderParameter encoderParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);   
             encoderParams.Param[0] = encoderParam;   
             imgSource.Dispose();         
             return outBmp;      
         }
原文地址:https://www.cnblogs.com/liuxinls/p/2960310.html