2017-05-22 60 views
0

我想獲得的圖像DPI轉換像素釐米,所以我用ImageInfo.java得到這個:的imageinfo不包含有效值

ImageInfo myMapInfo = new ImageInfo(); 
      try { 
       File testFile = new File(fileNameString); 
       InputStream myMapStream = new FileInputStream(testFile); 
       myMapInfo.setInput(myMapStream); 
       myMapInfo.setDetermineImageNumber(true); 
       myMapInfo.setCollectComments(true); 

      } catch (FileNotFoundException e) { 
       e.printStackTrace(); 
      } 

      x = myMapInfo.getPhysicalWidthInch(); 
      y = myMapInfo.getPhysicalHeightInch(); 

但不幸的是我得到-1 -1(x,y)!我使用這個類: ImageInfo.java

+0

我使用sanselan jar庫,它的工作原理... –

回答

0

從看的imageinfo的源代碼,你需要打電話給你myMapInfo變量的check()方法,如果這個通行證,您可以使用各種getXxX()方法來獲得你需要的任何信息。順便說一句,得到-1意味着信息不可用,但這很可能是因爲您沒有調用check()方法。

+0

你的意思是使用'check()'方法,如:'boolean sth = myMapInfo.check()'? ,我用它和'sth'有一個真正的值,但錯誤仍然存​​在... –

+0

設置好你的輸入並確定圖像編號等之後,你需要調用'myMapInfo.check()'。這將嘗試用可用的信息填充'myMapInfo'。您也可以直接運行ImageInfo.java(它有主要方法,可以用作控制檯應用程序)並提供您的測試文件作爲輸入,以檢查它是否有效。 –

+0

我在測試後認識到,'myMapInfo.getFormatName()'和'myMapInfo.getMimeType()',...運行良好,但是'myMapInfo.getPhysicalWidthInch()'或'myMapInfo.getPhysicalWidthDpi()'返回'-1 '! –