通过改变内存图像的分辨率来改变图像在屏幕的大小。
原理是:屏幕的大小/图像(内存的图像)的大小= 屏幕的分辨率/图像(内存的图像)的分辨率。
注意:当图像的分辨率率变大时,图像本身的像素点的大小并没有改变。
比如图像的大小为1000*1000,分辨率为300,则图像的物理尺寸是 1000/300,
当图像的分辨率变为600时,则图像的物理尺寸是1000\600。变小 了,
根据上面的计算公式:屏幕的分辨率不变,图像的分辨率变大,图像的大小变小,则屏幕的大小变得更小。所以整张图片都变小了。
可以这样理解;当分辨率变大时,绘图表面大小不变。 像素点的大小缩小一半。又由于图像本身的像素点不变,所以整张图像都变小。
如图:
代码:
View Code
private void Form1_Paint(object sender, PaintEventArgs e)
{
var g = e.Graphics;
Bitmap bm = new Bitmap("rama.jpg");
bm.SetResolution(600, 600);
this.Width = 600;
this.Height =600;
Font f = new Font("aries",13);
g.DrawImage(bm, 0, 0);
g.DrawString("分辨率为600",f,Brushes.Red,0,200);
Bitmap btm = new Bitmap("rama.jpg");
btm.SetResolution(1200, 1200);
g.DrawImage(btm, 300, 0);
g.DrawString("分辨率为1200", f, Brushes.Red, 300, 200);
}
{
var g = e.Graphics;
Bitmap bm = new Bitmap("rama.jpg");
bm.SetResolution(600, 600);
this.Width = 600;
this.Height =600;
Font f = new Font("aries",13);
g.DrawImage(bm, 0, 0);
g.DrawString("分辨率为600",f,Brushes.Red,0,200);
Bitmap btm = new Bitmap("rama.jpg");
btm.SetResolution(1200, 1200);
g.DrawImage(btm, 300, 0);
g.DrawString("分辨率为1200", f, Brushes.Red, 300, 200);
}
用途:可以通过改变图像的分辨率来改变图像显示在屏幕上的大小。