C#图片按比例缩放

来源:互联网 发布:联通互联网套餐 知乎 编辑:程序博客网 时间:2024/06/08 11:55
          // 按比例缩放图片          public Image ZoomPicture(Image SourceImage, int TargetWidth, int TargetHeight)          {                            //新的图片宽              int IntWidth;               //新的图片高              int IntHeight;               try              {                  System.Drawing.Imaging.ImageFormat format = SourceImage.RawFormat;                  System.Drawing.Bitmap SaveImage = new System.Drawing.Bitmap(TargetWidth, TargetHeight);                 Graphics g = Graphics.FromImage(SaveImage);                 g.Clear(Color.White);                   //宽度比目的图片宽度大,长度比目的图片长度小                 if (SourceImage.Width > TargetWidth && SourceImage.Height <= TargetHeight)                 {                     IntWidth = TargetWidth;                     IntHeight = (IntWidth * SourceImage.Height) / SourceImage.Width;                 }                 //宽度比目的图片宽度小,长度比目的图片长度大                 else if (SourceImage.Width <= TargetWidth && SourceImage.Height > TargetHeight)                 {                     IntHeight = TargetHeight;                     IntWidth = (IntHeight * SourceImage.Width) / SourceImage.Height;                 }                 //长宽比目的图片长宽都小                 else if (SourceImage.Width <= TargetWidth && SourceImage.Height <= TargetHeight)                  {                     IntHeight = SourceImage.Width;                     IntWidth = SourceImage.Height;                 }                 //长宽比目的图片的长宽都大                 else                 {                     IntWidth = TargetWidth;                     IntHeight = (IntWidth * SourceImage.Height) / SourceImage.Width;                     if (IntHeight > TargetHeight)                     {                         IntHeight = TargetHeight;                         IntWidth = (IntHeight * SourceImage.Width) / SourceImage.Height;                     }                 }                  g.DrawImage(SourceImage, (TargetWidth - IntWidth) / 2, (TargetHeight - IntHeight) / 2, IntWidth, IntHeight);                 SourceImage.Dispose();                  return SaveImage;             }             catch (Exception ex)             {                            }              return null;         }


原创粉丝点击