2008-09-23 44 views
6

我們的客戶將上傳要打印在他們文檔上的圖像,並且我們被要求提供一種獲取圖像分辨率的方法,以便在圖像分辨率太低並且看起來像素化時警告他們在最終產品使用C#和.NET環境獲取jpeg圖像的分辨率?

如果說到它,我們也可以用維度去,如果有人知道如何得到這些,但分辨率將是首選

謝謝

回答

2
Image image = Image.FromFile([file]); 
GraphicsUnit unit = GraphicsUnit.Point; 
RectangleF rect = image.GetBounds(ref unit); 
float hres = image.HorizontalResolution; 
float vres = image.VerticalResolution; 
8

這取決於你在找什麼......如果你想要圖像的DPI,那麼你正在尋找水平分辨率這是圖像的DPI。

Image i = Image.FromFile(@"fileName.jpg"); 
i.HorizontalResolution; 

如果你想找出圖像有多大,那麼你需要計算它是圖像的測量:

int docHeight = (i.Height/i.VerticalResolution); 
int docWidth = (i.Width/i.HorizontalResolution); 

這會給你以英寸爲單位的文件的高度和寬度那麼你可以比較所需的最小尺寸。

+0

+1。布萊恩,你從幾個小時的研究中拯救了我,偉大的洞察力! – 2010-05-13 21:41:14

3

僅當打印時,DPI纔有意義。 72dpi是Mac標準,96dpi是Windows標準。屏幕分辨率僅考慮像素,因此72dpi 800x600 jpeg與96dpi 800x600像素的屏幕分辨率相同。

回到80年代,Mac使用72dpi屏幕/打印分辨率來適應屏幕/打印尺寸,因此當您在屏幕上以1:1的比例顯示圖像時,它對應於打印機上的相同尺寸。 Windows將屏幕分辨率提高到96dpi以獲得更好的字體顯示效果..但是結果是,屏幕圖像不再符合打印尺寸。

因此,對於web項目,如果圖像不適合打印,請不要打擾DPI; 72dpi,96dpi,甚至1200dpi應顯示相同。