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;     
         }

你可能感兴趣的:(ASP.NET,c#)