C#中如何调整图像大小

来源:互联网 发布:狄俄尼索斯知乎 编辑:程序博客网 时间:2024/05/22 08:21

在本篇文章中,我将介绍如何在C#中来调整你想要的图像大小。要实现这一目标,我们可以采取以下几个步骤:

1.首先要获取你想要调整大小的图像:

1
2
string path = Server.MapPath("~/Images");
System.Drawing.Image img = System.Drawing.Image.FromFile(string.Concat(path,"/3904.jpg"));

2.将图像转换为Bitmap:

1
Bitmap b = new Bitmap(img);

3.创建一个调整图像大小的方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
private static System.Drawing.Image resizeImage(System.Drawing.Image imgToResize, Size size)
{
    //获取图片宽度
    int sourceWidth = imgToResize.Width;
    //获取图片高度
    int sourceHeight = imgToResize.Height;
  
    float nPercent = 0;
    float nPercentW = 0;
    float nPercentH = 0;
    //计算宽度的缩放比例
    nPercentW = ((float)size.Width / (float)sourceWidth);
    //计算高度的缩放比例
    nPercentH = ((float)size.Height / (float)sourceHeight);      
  
    if (nPercentH < nPercentW)
        nPercent = nPercentH;
    else
     nPercent = nPercentW;
     //期望的宽度
     int destWidth = (int)(sourceWidth * nPercent);
     //期望的高度
     int destHeight = (int)(sourceHeight * nPercent);
  
     Bitmap b = new Bitmap(destWidth, destHeight);
     Graphics g = Graphics.FromImage((System.Drawing.Image)b);
     g.InterpolationMode = InterpolationMode.HighQualityBicubic;
     //绘制图像
     g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);
     g.Dispose();
     return (System.Drawing.Image)b;
}

 在上面的方法中,我们获取了位图图像,然后绘制了不同尺寸的图像(这里绘制出的图像是基于指定的纵横比)

4.调用上述方法,得到调整大小之后的图片:

1
System.Drawing. Image i = resizeImage(b, new Size(100, 100));

 输出结果:

0 0
原创粉丝点击