我使用WinForms创建一个96xpi分辨率的512x512像素图像。初始化后,我使用OnPaint
使用Graphics.DrawImage
来绘制此图像。我在运行该程序时得到的图像如下所示:基本上是一张包含某些与我想要显示的内容相似的图像的1024x1024图像,除了它由2x2像素块组成,所有图像均具有相同的颜色。这很奇怪。为什么WinForms绘制我的图像大小的4倍?
有人能帮我弄清楚发生了什么事吗?这只发生在高DPI显示器上,该程序在普通的显示器上工作得很好。
更新1:我明确设置过程中要DPI,不知道有SetProcessDpiAwareness(_Process_DPI_Awareness.Process_DPI_Unaware);
并明确在一个矩形调用DrawImage
,即
e.Graphics.DrawImage(bmp,
new Rectangle(0, 0, 512, 512),
new Rectangle(0, 0, 512, 512), GraphicsUnit.Pixel);
,并没有不帮助。
编辑2:上打开DPI意识之后,我现在得到相同的垃圾,但在合适的尺寸:
编辑3:终于得到了它,文物是我在CUDA方面错误地渲染东西的结果。高DPI的废话只是一个分心。
添加您用于绘制图像的代码。 – CathalMF