2009-07-28 3 views
1

ImageIO.readを使用して、アップロードされた画像ファイルを処理しています。コードは、私が問題のほとんどを解決するために管理しているImageIOを使用してJCS_YCCK画像を読む

BufferedImage bufferedImage = ImageIO.read(new ByteArrayInputStream(image.getContents())); 

に似ていますが、これは無知な私を残しています。アップロードされた画像には、でサポートされていないcom.sun.imageio.plugins.jpeg.JPEGで定義されているJCS_YCCKのプロファイルがあります。

Caused by: javax.imageio.IIOException: Unsupported Image Type 
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageReader.java:910) 
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(JPEGImageReader.java:885) 
    at javax.imageio.ImageIO.read(ImageIO.java:1422) 
    at javax.imageio.ImageIO.read(ImageIO.java:1326) 
    at com.example.ImageWriter.resizeEmbeddableImageInPlace(ImageWriter.java:231) 

JavaのImageIOを使用してこのタイプのJPEGを処理するにはどうすればよいですか?


更新:私は答えで示さコモンズ・Sanselanを、試してみたが、残念ながらそれは、JPEGファイルをサポートしていません:

org.apache.sanselan.ImageReadException: Sanselan cannot read or write JPEG images. 
    at org.apache.sanselan.formats.jpeg.JpegImageParser.getBufferedImage(JpegImageParser.java:90) 
    at org.apache.sanselan.Sanselan.getBufferedImage(Sanselan.java:1264) 
    at org.apache.sanselan.Sanselan.getBufferedImage(Sanselan.java:1231) 

答えて

0

解決策の1つは、Java Advanced Imaging Image IO拡張機能を使用することです。適切にインストールされると、変換はそのままで動作します。

問題はMavenでうまく動かないため、Using Java Advanced Imaging with Mavenに質問しました。それがうまくいくなら、この答えは受け入れられます。

-1

私はImageIOでのために知っている、しかし、あなたはありませんCommons Sanselan libraryを使用すると、あらゆる種類の画像に簡単にアクセスできます。

+0

ありがとうございます!私は見てみましょう。 –

+1

Sanselanは、JPEG画像はサポートされていないことを明示的に述べています。 –

関連する問題