我使用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