1. 程式人生 > >C#下解決DrawImage畫出來的Image變大了的問題

C#下解決DrawImage畫出來的Image變大了的問題

logs 寬度 wim ima graphics Go private time phi

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

C#下解決DrawImage畫出來的Image變大了的問題