通过改变内存图像的分辨率来改变图像在屏幕的大小。
原理是:屏幕的大小/图像(内存的图像)的大小= 屏幕的分辨率/图像(内存的图像)的分辨率。
注意:当图像的分辨率率变大时,图像本身的像素点的大小并没有改变。
比如图像的大小为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 );
}
用途:可以通过改变图像的分辨率来改变图像显示在屏幕上的大小。