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.VEVb.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 }
新闻热点
疑难解答