C#图片按比例缩放

2018-06-17 20:13:19来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

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         }

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:ASP.NET 窗体间传值实现方法详解

下一篇:c# datetime 格式化