Graphics.DrawImage繪制的圖像變大的原因分析及解決
Graphics.DrawImage繪制的圖像變大
原因分析
DrawImage是設(shè)備相關(guān)的函數(shù),換言之就是,DrawImage會把屏幕的參數(shù)帶上,所以,它繪制圖像的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) ;//繪制時加上原圖的寬度和高度
2: image.SetResolution(96, 96) ;//設(shè)置SetResolution,使其按96 點/英寸的分辨率顯示
C#Graphics.DrawImage的一些問題
今天需要把一些小圖(如125*100)放到大圖(1024*768)中,然后用到了Graphics.DrawImage這個函數(shù),開始使用的是DrawImage(Image image, Point point)。
查看結(jié)果的時候發(fā)現(xiàn)極少數(shù)的小圖插入以后變大了,調(diào)試以后發(fā)現(xiàn)是C#函數(shù)的問題。
改用DrawImage(Image image, Rectangle rect)問題就解決了,可能是C#在計算圖像大小的時候存在錯誤。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
C#中List〈string〉和string[]數(shù)組之間的相互轉(zhuǎn)換
List<string>和string[]數(shù)組之間的相互轉(zhuǎn)換,需要的朋友可以參考下2012-12-12基于WebClient實現(xiàn)Http協(xié)議的Post與Get對網(wǎng)站進行模擬登陸和瀏覽實例
這篇文章主要介紹了基于WebClient實現(xiàn)Http協(xié)議的Post與Get對網(wǎng)站進行模擬登陸和瀏覽的方法,以實例形式詳細分析了WebClient模擬POST與GET登陸與瀏覽的過程,對于C#項目開發(fā)來說具有不錯的參考借鑒價值,需要的朋友可以參考下2014-11-11