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


如:

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 點/英寸的分辨率顯示


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM