2016-04-13 34 views
0

Gün boyunca SO ve Oracle üzerinde okuma yaptım. Bir .jpg görüntüsünden meta verileri nasıl çıkaracağımı öğrenmek için (imgeye gömülü GPS verilerini ayıklayarak). 3. parti kütüphaneleri için pek fazla seçeneğim olmadığı bir ortamda yaşıyorum.Java ImageReader Görüntü Yok İadesi

Ben ImageIO, ImageReader, IIOMetadata kombinasyonu tökezledi ama sorun yaşıyorum:

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); 

Bu şu anda test ediyorum koddur. Gördüğünüz gibi, görüntüyü işaret eden bir dosya nesnesi oluşturuyorum, onu bir dosya olarak görüp görmediğini doğrulayın (bunu yapar) ve ardından dosyaya dayalı bir ImageInputStream oluşturun. Dosyayı bir BufferedImage nesnesine iterek ve ondan veri okuyarak bozuk olmadığını doğruladım.

Ben bir jpg için ImageReader kapmak ImageInputStream için ImageReader girişini ayarlamak ve sonra gördüğü resim sayısını kontrol edin.

İşaret ettiğim bir resmi temsil eden 1'i görüyor olmalıyım, ancak görüntülerin olmadığını belirten -1 değerini döndürmeye devam ediyor.

BLUF: Yukarıdaki kodda, işaret ettiğim resmi düzgün göremediğimde yanlış yapıyorum?

+1

'reader.getNumImages (doğru) 'farklı bir değer iade ediyor mu? – VGR

+1

** dönüş değeri -1 sadece akışta kalan görüntülerin sayısını belirlemek için bir aramanın gerekli olduğunu belirtir **: [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

+0

hayır, bu bir @VGR var - 1. –

cevap

2

dönüş değeri -1 sadece bir arama akışı içinde kalan görüntü sayısını belirlemek için gerekli olduğunu gösterir: ImageReader Javadoc

İlgili konular