2013-07-08 14 views
10

Bir tiff dosyasını BufferedImage'a dönüştürmem gerekiyor. Emin myFile içinBir tiff'i bir tamponlu görüntüye dönüştürün (Java)

String filepath = "C:\\tiffFolder\\"; 
String filename = "myTiffImage.tif"; 
File myFile = new File (filepath + filename); 
BufferedImage img = ImageIO.read(myFile); 

bildiğim doğru nesnelleştirilir: Sorun kodu img dördüncü satırında sonra hala boş olmasıdır Aşağıdaki kodu yazdım.

Neyi yanlış yapıyorum? Çok teşekkürler! Sen ImageIO tarafından desteklenmeyen bir dosya biçimi okumaya çalışıyoruz

FileSeekableStream stream = new FileSeekableStream(filepath + filename); 
TIFFDecodeParam decodeParam = new TIFFDecodeParam(); 
decodeParam.setDecodePaletteAsShorts(true); 
ParameterBlock params = new ParameterBlock(); 
params.add(stream); 
RenderedOp image1 = JAI.create("tiff", params); 
BufferedImage img = image1.getAsBufferedImage(); 
+0

myFile.canRead() işlevi ne döndürüyor? [satır 3 ve 4 arasında] – Burkhard

+0

@Burkhard, bu değer –

+0

@DanieleMilani değerini döndürür. Aşağıdaki satır çıktısını kontrol edin: 'System.out.println (Arrays.toString (ImageIO.getReaderFileSuffixes()));' Makinemde [bmp, jpg, jpeg, wbmp, png, gif] 'dir. Hayır, hayır. – johnchen902

cevap

7

:

çözüldü

Düzenleme, ben aşağıdaki kodu kullandım.

johnchen902'nin belirttiği gibi, ImageIO.getReaderFileSuffixes(), desteklenen soneklerin bir listesini döndürür. tiff bu listede yok. Bu yüzden onu böyle okuyamazsın. Bazı harici kütüphaneciler size yardımcı olabilir. Örneğin: Java Gelişmiş Görüntüleme API'si TIFF'i destekler. Ayrıntılar here.

+0

Açıklama için teşekkürler! Bir sorunum var, bağlantıya ulaşamıyorum ... –

+0

Bağlantı düzeltildi. Bunun için özür dilerim. – Burkhard

+0

teşekkürler, bu çözümü deneyeceğim ve en kısa sürede rapor hazırlayacağım –

İlgili konular