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://m.survivalescaperooms.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 }
新聞熱點
疑難解答