J'utilise ImageIO.read
pour traiter les fichiers image téléchargés. Le code est similaire àLecture d'images JCS_YCCK en utilisant ImageIO
BufferedImage bufferedImage = ImageIO.read(new ByteArrayInputStream(image.getContents()));
J'ai réussi à résoudre la plupart des problèmes, mais celui-ci ne m'a pas aidé. L'image téléchargée a un profil JCS_YCCK
, tel que défini dans com.sun.imageio.plugins.jpeg.JPEG
, qui n'est pas pris en charge par com.sun.imageio.plugins.jpeg.JPEGImageReader
. Cela conduit à une belle trace de pile semblable à:
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)
Comment puis-je traiter ce type de JPEG en utilisant ImageIO de Java?
Mise à jour: J'ai essayé Commons-Sanselan, indiqué par une réponse, mais malheureusement, il ne supporte pas les fichiers 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)
Merci! Je regarderai. –
Sanselan indique explicitement que les images JPEG ne sont pas supportées. –