2011-09-21 37 views
0

我有一個位圖變量,我將較小的32x32 png文件(作爲位圖加載)複製到位圖上。然而,一些PNG被放大(總是相同的),並且例如在複製後顯示爲36×36。幾乎就像一些PNG有另一個DPI或其他東西?我怎樣才能防止這一點?C#爲什麼在使用GDI +進行復制後會調整一些位圖?

Graphics g = Graphics.FromImage(destinationImage); 
    g.DrawImage(sourceImage, location); // sourceImage is sometimes larger than it actually is. On disk it is 32x32 but after copying it might be bigger... 
    g.Dispose(); 

回答

1

我想你說得對DPI,因爲它在文檔中的陳述的:

這種方法利用其物理尺寸繪製圖像...

我太懶做一個測試項目,但我認爲矩形大小等於源圖像大小的Graphics.DrawImage(圖像,矩形)將解決您的問題。

+0

Graphics.DrawImage(Image,Rectangle)解決了它。 – Napoleon

1

Image.Horizo​​ntal/VerticalResolution屬性很重要。如果它不符合顯示器的每英寸點數設置,則圖像將按比例增大或減小。這往往是不可取的,使用DragImage(圖像,矩形)超載迫使它顯示精確的32 x 32像素。

相關問題