2011-10-11 29 views
1

我有兩個圖像:圖像大小考慮(或不)H/V分辨率

Name Type Width Height HRes VRes 
img01 GIF 256 256  384 96 
img02 TIFF 1728 1147 200 100 

視窗內部查看器顯示他們使用不同圖案

  • IMG01被顯示爲256×256圖像(方塊)
  • img02顯示爲垂直圖像(儘管寬度>高度)和ima GE格式正確

看到後img02行爲我想通過顯示給定大小:

Display_Width = max(HRes,VRes) * Width/HRes 
Display_Height = max(HRes,VRes) * Height/VRes 

但是,這不利於IMG01,其顯示爲256×256!
如果我使用Image class加載這些圖像,則不考慮分辨率,所以img02顯示爲水平且偏差正確的格式。
如果Windows內部查看器正確顯示它們,我認爲應該有一些屬性來了解是否需要考慮解決方案。
Image class我有FlagsPropertyItems屬性,但我真的不明白,如果他們是我必須看。

你能教我正確的方法來顯示圖像(使用圖像類)沒有失真?
謝謝

回答

1

GIF文件中的長寬比很少見,因爲GIF是一種格式,用於存儲計算機屏幕上顯示的圖形。實際上,GIF87a文件根本沒有寬高比,而GIF89a不存儲實際寬高比,而是存儲近似值。另一方面,TIFF文件大部分由平面設計師,攝影師和出版商使用,所以像素縱橫比的概念是格式的核心,因爲它允許這些文件在不同的顯示介質之間移動。

我的猜測是大多數GIF解碼器忽略GIF89a格式的長寬比。我認爲你應該這樣做。

+0

感謝米格爾,你的回答+1,因爲它聽起來很合理。我想有其他答案,以瞭解在開始按文件類型區分之前是否有_always valid_方法。我希望我可以找到一些設置或不在圖像屬性... – Marco

+0

你檢查了你的GIF圖像像素長寬比字段?我檢查的所有圖像都設置爲0,這意味着1:1。 – Miguel

+0

像素寬高比字段?我沒有這個屬性在我的圖像類... – Marco