zoukankan      html  css  js  c++  java
  • C#图片按比例缩放

    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         }
  • 相关阅读:
    再理解HDFS的存储机制
    C实现头插法和尾插法来构建单链表(不带头结点)
    linux系统编程:线程同步-相互排斥量(mutex)
    基于github for windows&amp;github的团队协作基本操作
    分治法求众数问题 (配图)
    hdu1576 mod 运算的逆元
    Android5.0(lollipop)新特性介绍(一)
    jenkins详解(一)
    手机APP测试点总结
    App测试方法总结
  • 原文地址:https://www.cnblogs.com/roucheng/p/3509606.html
Copyright © 2011-2022 走看看