欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Graphics.DrawImage绘制的图像变大的原因分析及解决

程序员文章站 2022-03-03 08:26:05
目录graphics.drawimage绘制的图像变大原因分析解决方案c#graphics.drawimage的一些问题graphics.drawimage绘制的图像变大原因分析drawimage是设...

graphics.drawimage绘制的图像变大

原因分析

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) ;//绘制时加上原图的宽度和高度

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

c#graphics.drawimage的一些问题

今天需要把一些小图(如125*100)放到大图(1024*768)中,然后用到了graphics.drawimage这个函数,开始使用的是drawimage(image image, point point)。

查看结果的时候发现极少数的小图插入以后变大了,调试以后发现是c#函数的问题。

改用drawimage(image image, rectangle rect)问题就解决了,可能是c#在计算图像大小的时候存在错误。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。