前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#图片按比例缩放建议收藏

C#图片按比例缩放建议收藏

作者头像
全栈程序员站长
发布2022-07-15 14:17:50
1.3K0
发布2022-07-15 14:17:50
举报

大家好,又见面了,我是全栈君

C#图片按比例缩放:

代码语言:javascript
复制
 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         }

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/120740.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年12月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档