You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by da...@apache.org on 2013/10/31 04:52:50 UTC
svn commit: r1537372 -
/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java
Author: damjan
Date: Thu Oct 31 03:52:50 2013
New Revision: 1537372
URL: http://svn.apache.org/r1537372
Log:
Eat our own dog food.
Modified:
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java
Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java?rev=1537372&r1=1537371&r2=1537372&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java Thu Oct 31 03:52:50 2013
@@ -27,6 +27,7 @@ import javax.imageio.ImageIO;
import org.apache.commons.imaging.ImageReadException;
import org.apache.commons.imaging.Imaging;
+import org.apache.commons.imaging.ImagingException;
import org.apache.commons.imaging.common.IImageMetadata;
import org.apache.commons.imaging.formats.tiff.JpegImageData;
import org.apache.commons.imaging.formats.tiff.TiffField;
@@ -150,10 +151,22 @@ public class JpegImageMetadata implement
final JpegImageData jpegImageData = dir.getJpegImageData();
if (jpegImageData != null) {
- final ByteArrayInputStream input = new ByteArrayInputStream(
- jpegImageData.data);
// JPEG thumbnail as JPEG or other format; try to parse.
- image = ImageIO.read(input);
+ boolean imageSucceeded = false;
+ try {
+ image = Imaging.getBufferedImage(jpegImageData.data);
+ imageSucceeded = true;
+ } catch (final ImagingException imagingException) {
+ } catch (final IOException ioException) {
+ } finally {
+ // our JPEG reading is still a bit buggy -
+ // fall back to ImageIO on error
+ if (!imageSucceeded) {
+ final ByteArrayInputStream input = new ByteArrayInputStream(
+ jpegImageData.data);
+ image = ImageIO.read(input);
+ }
+ }
if (image != null) {
return image;
}