[英]Reading pixel aspect ratio of TIF image in Java
我正在閱讀並使用ImageIO和JAI處理TIF圖像。 除了許多TIF圖像沒有方形像素外,結果都完美無缺。 在處理期間像素的縱橫比正在丟失,因此得到的圖像看起來被拉伸。
我發現這個問題在C#中讀出分辨率:將tiff像素長寬比改為平方但我在java中找不到任何等價物。
有沒有人知道如何在Java中讀取BufferedImage和/或TIF圖像的水平和垂直分辨率(不是大小),或者在加載圖像時使JAI縮放圖像以使得結果像素是方形的?
經過一個小時的谷歌搜索和嘗試,我認為我找到了解決方案。
IIOMetadata iiom = ir.getImageMetadata(i);
TIFFDirectory dir = TIFFDirectory.createFromMetadata(iiom);
TIFFField fieldXRes = dir.getTIFFField(BaselineTIFFTagSet.TAG_X_RESOLUTION);
TIFFField fieldYRes = dir.getTIFFField(BaselineTIFFTagSet.TAG_Y_RESOLUTION);
int xRes = fieldXRes.getAsInt(0);
int yRes = fieldYRes.getAsInt(0);
作為替代方案,如果您不想依賴JAI API(或者根本不依賴於TIFF格式),您也可以從標准元數據中獲取相同的值。
Dimension
元素具有子元素HorizontalPixelSize
和VerticalPixelSize
,它們應該等同於您從上面的TIFF標記獲得的值,以及您可以直接使用的PixelAspectRatio
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.