0
我一直在閱讀SO和Oracle全天學習如何從.jpg圖像中提取元數據(提取嵌入圖像中的GPS數據)。我處於一個沒有很多第三方庫選項的環境中。Java ImageReader返回無圖像
我偶然發現了的ImageIO,ImageReader的,組合的IIOMetadata但我有問題:
File file = new File("/home/djtorrey/Pictures/test.jpg");
System.out.println(file.isFile());
ImageInputStream iis = ImageIO.createImageInputStream(file);
Iterator readers = ImageIO.getImageReadersByFormatName("jpg");
ImageReader reader = (ImageReader)readers.next();
reader.setInput(iis,true);
int value = reader.getNumImages(false);
System.out.println(value);
這是我現在測試代碼。正如你所看到的,我正在創建一個指向圖像的文件對象,驗證它將它視爲一個文件(它確實),然後基於該文件創建一個ImageInputStream。我已經通過將文件推入BufferedImage對象並從中讀取數據來驗證它沒有損壞。
我抓取一個jpg的ImageReader,將ImageReader輸入設置爲ImageInputStream,然後檢查它看到的圖像數量。
我應該看到1代表我指向的一個圖像,但它一直返回-1,表示沒有圖像。
BLUF:在上面的代碼中,我在做錯了什麼,它沒有正確地看到我指向的圖像?
是否'reader.getNumImages(真)'返回不同的值? – VGR
**返回值-1僅表示需要進行搜索以確定流**中剩餘圖像的數量:[https://docs.oracle.com/javase/7/docs/api/javax/imageio /ImageReader.html#getNumImages(boolean)](https://docs.oracle.com/javase/7/docs/api/javax/imageio/ImageReader.html#getNumImages(boolean)) – Gilfoyle
@VGR不,它是 - 1。 –