C#圖片按比例縮放:
1 // 按比例縮放圖片 2 public Image ZoomPicture(Image SourceImage, int TargetWidth, int TargetHeight) 3 { 4 int IntWidth; //新的圖片寬 5 int IntHeight; //新的圖片高 6 try 7 { 8 System.Drawing.Imaging.ImageFormat format = SourceImage.RawFormat; 9 System.Drawing.Bitmap SaveImage = new System.Drawing.Bitmap(TargetWidth, TargetHeight); 10 Graphics g = Graphics.FromImage(SaveImage); 11 g.Clear(Color.White); 12 13 //計算縮放圖片的大小 http://www.cnblogs.com/roucheng/ 14 15 if (SourceImage.Width > TargetWidth && SourceImage.Height <= TargetHeight)//寬度比目的圖片寬度大,長度比目的圖片長度小 16 { 17 IntWidth = TargetWidth; 18 IntHeight = (IntWidth * SourceImage.Height) / SourceImage.Width; 19 } 20 else if (SourceImage.Width <= TargetWidth && SourceImage.Height > TargetHeight)//寬度比目的圖片寬度小,長度比目的圖片長度大 21 { 22 IntHeight = TargetHeight; 23 IntWidth = (IntHeight * SourceImage.Width) / SourceImage.Height; 24 } 25 else if (SourceImage.Width <= TargetWidth && SourceImage.Height <= TargetHeight) //長寬比目的圖片長寬都小 26 { 27 IntHeight = SourceImage.Width; 28 IntWidth = SourceImage.Height; 29 } 30 else//長寬比目的圖片的長寬都大 31 { 32 IntWidth = TargetWidth; 33 IntHeight = (IntWidth * SourceImage.Height) / SourceImage.Width; 34 if (IntHeight > TargetHeight)//重新計算 35 { 36 IntHeight = TargetHeight; 37 IntWidth = (IntHeight * SourceImage.Width) / SourceImage.Height; 38 } 39 } 40 41 g.DrawImage(SourceImage, (TargetWidth - IntWidth) / 2, (TargetHeight - IntHeight) / 2, IntWidth, IntHeight); 42 SourceImage.Dispose(); 43 44 return SaveImage; 45 } 46 catch (Exception ex) 47 { 48 49 } 50 51 return null; 52 }