diff -Nru Source/com/drew/imaging/jpeg/JpegMetadataReader.java Source-gil/com/drew/imaging/jpeg/JpegMetadataReader.java --- Source/com/drew/imaging/jpeg/JpegMetadataReader.java 2006-11-30 01:51:20.000000000 +0100 +++ Source-gil/com/drew/imaging/jpeg/JpegMetadataReader.java 2011-08-15 21:10:35.000000000 +0200 @@ -21,7 +21,6 @@ import com.drew.metadata.iptc.IptcReader; import com.drew.metadata.jpeg.JpegCommentReader; import com.drew.metadata.jpeg.JpegReader; -import com.sun.image.codec.jpeg.JPEGDecodeParam; import java.io.File; import java.io.InputStream; @@ -82,36 +81,6 @@ return metadata; } - - public static Metadata readMetadata(JPEGDecodeParam decodeParam) - { - final Metadata metadata = new Metadata(); - - /* We should only really be seeing Exif in _data[0]... the 2D array exists - * because markers can theoretically appear multiple times in the file. - */ - // TODO test this method - byte[][] exifSegment = decodeParam.getMarkerData(JPEGDecodeParam.APP1_MARKER); - if (exifSegment != null && exifSegment[0].length>0) { - new ExifReader(exifSegment[0]).extract(metadata); - } - - // similarly, use only the first IPTC segment - byte[][] iptcSegment = decodeParam.getMarkerData(JPEGDecodeParam.APPD_MARKER); - if (iptcSegment != null && iptcSegment[0].length>0) { - new IptcReader(iptcSegment[0]).extract(metadata); - } - - // NOTE: Unable to utilise JpegReader for the SOF0 frame here, as the decodeParam doesn't contain the byte[] - - // similarly, use only the first Jpeg Comment segment - byte[][] jpegCommentSegment = decodeParam.getMarkerData(JPEGDecodeParam.COMMENT_MARKER); - if (jpegCommentSegment != null && jpegCommentSegment[0].length>0) { - new JpegCommentReader(jpegCommentSegment[0]).extract(metadata); - } - - return metadata; - } private JpegMetadataReader() throws Exception { diff -Nru Source/com/drew/metadata/test/SampleUsage.java Source-gil/com/drew/metadata/test/SampleUsage.java --- Source/com/drew/metadata/test/SampleUsage.java 2006-11-30 02:33:22.000000000 +0100 +++ Source-gil/com/drew/metadata/test/SampleUsage.java 2011-08-15 21:13:34.000000000 +0200 @@ -26,9 +26,6 @@ import com.drew.metadata.Metadata; import com.drew.metadata.Directory; import com.drew.metadata.Tag; -import com.sun.image.codec.jpeg.JPEGCodec; -import com.sun.image.codec.jpeg.JPEGDecodeParam; -import com.sun.image.codec.jpeg.JPEGImageDecoder; import java.awt.image.BufferedImage; import java.io.File; @@ -90,21 +87,6 @@ System.err.println("error 3a: " + e); } - // Approach 4 - // This approach is the slowest, because it decodes the Jpeg image. Of course you now have a decoded image to - // play with. In some instances this will be most appropriate. - try { - JPEGImageDecoder jpegDecoder = JPEGCodec.createJPEGDecoder(new FileInputStream(file)); - BufferedImage image = jpegDecoder.decodeAsBufferedImage(); - // now you can use the image - JPEGDecodeParam decodeParam = jpegDecoder.getJPEGDecodeParam(); - Metadata metadata = JpegMetadataReader.readMetadata(decodeParam); - printImageTags(4, metadata); - } catch (FileNotFoundException e) { - System.err.println("error 4a: " + e); - } catch (IOException e) { - System.err.println("error 4b: " + e); - } } private void printImageTags(int approachCount, Metadata metadata)