La lecture des images à l'aide JCS_YCCK ImageIO

voix
1

J'utilise ImageIO.readpour traiter les fichiers uploadés d'image. Le code est similaire à

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

J'ai réussi à résoudre la plupart des problèmes, mais celui - ci m'a laissé désemparés. L'image transférée a un JCS_YCCKprofil tel que défini dans com.sun.imageio.plugins.jpeg.JPEG, qui ne sont 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 la ImageIO 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)
Créé 28/07/2009 à 22:04
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
0

Une solution possible est d'utiliser les extensions d'image Java Advanced Imaging IO. Lorsqu'il est correctement installé, la conversion fonctionne hors de la boîte.

Le problème est qu'il ne joue pas bien avec Maven, donc je l' ai demandé à l' aide de Java Advanced Imaging avec Maven . Si cela fonctionne, cette réponse sera acceptée.

Créé 30/07/2009 à 22:46
source utilisateur

voix
-1

Je ne sais pas pour ImageIO, mais vous pouvez utiliser la bibliothèque Commons Sanselan , qui offre des moyens faciles d'accès à toutes sortes d'images.

Créé 29/07/2009 à 11:53
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more