首页 > 学院 > 开发设计 > 正文

C#图片按比例缩放

2019-11-14 16:52:52
字体:
来源:转载
供稿:网友

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         }

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表