C#下解决DrawImage画出来的Image变大了的问题

如:

private Image image= Resources.image1;//假设image1这张资源图是360×600这么大

private Graphics graphics;

graphics.DrawImage(image, 0, 0);//在[0,0]坐标处画出image,我擦!绘出来的图片比原图变大了! 

什么原因呢???

原来,DrawImage是与设备相关的函数,也就是,DrawImage会把屏幕的参数带上!!!

所以,它绘制图像的DPI基本都是96。而我们的图片是一般是72DPI的。

例如,假定一个 Image 对象的宽度为 216 像素,而存储的水平分辨率值为 72 点/英寸。因为 216 除以 72 等于 3,所以 DrawImage 将缩放该图像,使其在
96 点/英寸的分辨率下的宽度为 3 英寸。也就是说,DrawImage 将显示一个宽度为 96x3 = 288 像素的图像。

解决法办:

1:graphics.DrawImage(image, 0, 0, image.Width, image.Height) ;//加上原图的宽度和高度就OK了

2: image.SetResolution(96, 96) ;//设置SetResolution,使其按96 点/英寸的分辨率显示

https://www.cnblogs.com/sungong1987/p/5269617.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值