GDI+ 调整图像的大小
原理:可通过绘图表面的属性InterploationMode来设置图像的质量。该值是个枚举类型。
简介:在设置图像质量时,若设置为高质量,则图像在屏幕显示的大小不变。但分辨率增大了,原有的像素值变小了,为了使图像能够以原来的大小显示在 屏幕上,故GDI+采用插补的过程重新绘制图像。从而达到图片质量提高的效果。
如图,左边的图片的质量比较差,右边的质量比较高。
代码:
View Code
1 //通过改变图像的分辨率来改变图像显示在屏幕上的大小。
2 private void Form1_Paint(object sender, PaintEventArgs e)
3 {
4 var g = e.Graphics;
5 Bitmap bm = new Bitmap("rama.jpg");
6 bm.SetResolution(600, 600);
7 g.InterpolationMode = InterpolationMode.NearestNeighbor;
8 g.DrawImage(
9 bm,
10 new RectangleF(0, 0, 120, 120),
11 new RectangleF(0, 0, bm.Width, bm.Height),
12 GraphicsUnit.Pixel
13 );
14 g.InterpolationMode = InterpolationMode.HighQualityBilinear;
15 g.DrawImage(
16 bm,
17 new RectangleF(200, 0, 120, 120),
18 new RectangleF(0, 0, bm.Width, bm.Height),
19 GraphicsUnit.Pixel
20 );
21
22 }
2 private void Form1_Paint(object sender, PaintEventArgs e)
3 {
4 var g = e.Graphics;
5 Bitmap bm = new Bitmap("rama.jpg");
6 bm.SetResolution(600, 600);
7 g.InterpolationMode = InterpolationMode.NearestNeighbor;
8 g.DrawImage(
9 bm,
10 new RectangleF(0, 0, 120, 120),
11 new RectangleF(0, 0, bm.Width, bm.Height),
12 GraphicsUnit.Pixel
13 );
14 g.InterpolationMode = InterpolationMode.HighQualityBilinear;
15 g.DrawImage(
16 bm,
17 new RectangleF(200, 0, 120, 120),
18 new RectangleF(0, 0, bm.Width, bm.Height),
19 GraphicsUnit.Pixel
20 );
21
22 }
用途:改变图像的质量以及分辨率。