2013-07-08 17 views
10

tiffファイルをBufferedImageに変換する必要があります。私は確かにのmyFileが正しくインスタンス化されて知っているtiffをバッファリングされたイメージに変換する(Java)

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

:この問題は、コードIMGの4行目の後に、まだヌルであるということである私は、次のコードを書きました。

私は間違っていますか? ありがとう!あなたはImageIOででサポートされていないファイル形式を読み取るしようとしている

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()は何を返しますか? [Line 3と4の間] – Burkhard

+0

@Burkhard、それは真を返します –

+0

@DanieleMilani次の行が何を出力しているかを確認します: 'System.out.println(Arrays.toString(ImageIO.getReaderFileSuffixes()));'私のマシンでは'[bmp、jpg、jpeg、wbmp、png、gif]'です。 'tif'はありません。 – johnchen902

答えて

7

解決編集

は、私は次のコードを使用していました。

johnchen902が指摘しているように、ImageIO.getReaderFileSuffixes()はサポートされている接尾辞のリストを返します。 tiffはそのリストにありません。だからこそ、それを読むことができないのです。いくつかの外部ライブラリがあなたを助けるかもしれません。 例:Java Advanced Imaging APIはTIFFをサポートしています。詳細here

+0

説明をありがとう!私は問題がある、私はリンクに到達することはできません... –

+0

リンクが修正されました。そのために残念。 – Burkhard

+0

ありがとう、私はこのソリューションを試してみようと、 –

関連する問題