Return-Path: X-Original-To: apmail-commons-commits-archive@minotaur.apache.org Delivered-To: apmail-commons-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A6BF9901C for ; Sat, 4 Feb 2012 13:51:07 +0000 (UTC) Received: (qmail 98854 invoked by uid 500); 4 Feb 2012 13:51:07 -0000 Delivered-To: apmail-commons-commits-archive@commons.apache.org Received: (qmail 98779 invoked by uid 500); 4 Feb 2012 13:51:06 -0000 Mailing-List: contact commits-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@commons.apache.org Delivered-To: mailing list commits@commons.apache.org Received: (qmail 98772 invoked by uid 99); 4 Feb 2012 13:51:05 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 04 Feb 2012 13:51:05 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 04 Feb 2012 13:51:01 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id BDE3A23889E7 for ; Sat, 4 Feb 2012 13:50:39 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1240502 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg: JpegImageParser.java exif/ExifRewriter.java segments/App2Segment.java xmp/JpegXmpRewriter.java Date: Sat, 04 Feb 2012 13:50:39 -0000 To: commits@commons.apache.org From: damjan@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120204135039.BDE3A23889E7@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: damjan Date: Sat Feb 4 13:50:39 2012 New Revision: 1240502 URL: http://svn.apache.org/viewvc?rev=1240502&view=rev Log: Added generic collections for all JPEG classes. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegImageParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/exif/ExifRewriter.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/App2Segment.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpRewriter.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegImageParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegImageParser.java?rev=1240502&r1=1240501&r2=1240502&view=diff ============================================================================== --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegImageParser.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegImageParser.java Sat Feb 4 13:50:39 2012 @@ -110,11 +110,11 @@ public class JpegImageParser extends Ima return false; } - public List readSegments(ByteSource byteSource, final int markers[], + public List readSegments(ByteSource byteSource, final int markers[], final boolean returnAfterFirst, boolean readEverything) throws ImageReadException, IOException { - final List result = new ArrayList(); + final List result = new ArrayList(); final JpegImageParser parser = this; final int[] sofnSegments = { // kJFIFMarker, @@ -193,7 +193,7 @@ public class JpegImageParser extends Ima public static final boolean permissive = true; - private byte[] assembleSegments(List v) throws ImageReadException + private byte[] assembleSegments(List v) throws ImageReadException { try { @@ -204,13 +204,13 @@ public class JpegImageParser extends Ima } } - private byte[] assembleSegments(List v, boolean start_with_zero) + private byte[] assembleSegments(List v, boolean start_with_zero) throws ImageReadException { if (v.size() < 1) throw new ImageReadException("No App2 Segments Found."); - int markerCount = ((App2Segment) v.get(0)).num_markers; + int markerCount = v.get(0).num_markers; // if (permissive && (markerCount == 0)) // markerCount = v.size(); @@ -264,7 +264,7 @@ public class JpegImageParser extends Ima return result; } - private void dumpSegments(List v) + private void dumpSegments(List v) { Debug.debug(); Debug.debug("dumpSegments", v.size()); @@ -279,7 +279,7 @@ public class JpegImageParser extends Ima Debug.debug(); } - public List readSegments(ByteSource byteSource, int markers[], + public List readSegments(ByteSource byteSource, int markers[], boolean returnAfterFirst) throws ImageReadException, IOException { return readSegments(byteSource, markers, returnAfterFirst, false); @@ -288,26 +288,25 @@ public class JpegImageParser extends Ima public byte[] getICCProfileBytes(ByteSource byteSource, Map params) throws ImageReadException, IOException { - List segments = readSegments(byteSource, + List segments = readSegments(byteSource, new int[] { JPEG_APP2_Marker, }, false); + List filtered = new ArrayList(); if (segments != null) { // throw away non-icc profile app2 segments. - List filtered = new ArrayList(); for (int i = 0; i < segments.size(); i++) { App2Segment segment = (App2Segment) segments.get(i); if (segment.icc_bytes != null) filtered.add(segment); } - segments = filtered; } - if ((segments == null) || (segments.size() < 1)) + if ((filtered == null) || (filtered.size() < 1)) return null; - byte bytes[] = assembleSegments(segments); + byte bytes[] = assembleSegments(filtered); if (debug) System.out.println("bytes" + ": " @@ -340,9 +339,9 @@ public class JpegImageParser extends Ima return byteArrayHasPrefix(segment.bytes, EXIF_IDENTIFIER_CODE); } - private List filterAPP1Segments(List v) + private List filterAPP1Segments(List v) { - List result = new ArrayList(); + List result = new ArrayList(); for (int i = 0; i < v.size(); i++) { @@ -354,22 +353,6 @@ public class JpegImageParser extends Ima return result; } - // TODO unused - private List filterSegments(List v, List markers) - { - List result = new ArrayList(); - - for (int i = 0; i < v.size(); i++) - { - Segment segment = (Segment) v.get(i); - Integer marker = new Integer(segment.marker); - if (markers.contains(marker)) - result.add(segment); - } - - return result; - } - public TiffImageMetadata getExifMetadata(ByteSource byteSource, Map params) throws ImageReadException, IOException { @@ -389,13 +372,13 @@ public class JpegImageParser extends Ima public byte[] getExifRawData(ByteSource byteSource) throws ImageReadException, IOException { - List segments = readSegments(byteSource, + List segments = readSegments(byteSource, new int[] { JPEG_APP1_Marker, }, false); if ((segments == null) || (segments.size() < 1)) return null; - List exifSegments = filterAPP1Segments(segments); + List exifSegments = filterAPP1Segments(segments); if (debug) System.out.println("exif_segments.size" + ": " + exifSegments.size()); @@ -563,7 +546,7 @@ public class JpegImageParser extends Ima throws ImageReadException, IOException { - final List result = new ArrayList(); + final List result = new ArrayList(); JpegUtils.Visitor visitor = new JpegUtils.Visitor() { // return false to exit before reading image data. @@ -605,13 +588,13 @@ public class JpegImageParser extends Ima if (result.size() > 1) throw new ImageReadException( "Jpeg file contains more than one XMP segment."); - return (String) result.get(0); + return result.get(0); } public JpegPhotoshopMetadata getPhotoshopMetadata(ByteSource byteSource, Map params) throws ImageReadException, IOException { - List segments = readSegments(byteSource, + List segments = readSegments(byteSource, new int[] { JPEG_APP13_Marker, }, false); if ((segments == null) || (segments.size() < 1)) @@ -639,7 +622,7 @@ public class JpegImageParser extends Ima public Dimension getImageSize(ByteSource byteSource, Map params) throws ImageReadException, IOException { - List segments = readSegments(byteSource, new int[] { + List segments = readSegments(byteSource, new int[] { // kJFIFMarker, SOF0Marker, @@ -675,7 +658,7 @@ public class JpegImageParser extends Ima { // List allSegments = readSegments(byteSource, null, false); - List SOF_segments = readSegments(byteSource, new int[] { + List SOF_segments = readSegments(byteSource, new int[] { // kJFIFMarker, SOF0Marker, SOF1Marker, SOF2Marker, SOF3Marker, SOF5Marker, @@ -691,7 +674,7 @@ public class JpegImageParser extends Ima // System.out.println("Incoherent SOFN Data Found: " // + SOF_segments.size()); - List jfifSegments = readSegments(byteSource, + List jfifSegments = readSegments(byteSource, new int[] { JFIFMarker, }, true); SofnSegment fSOFNSegment = (SofnSegment) SOF_segments.get(0); @@ -805,8 +788,8 @@ public class JpegImageParser extends Ima PhysicalHeightInch = (float) (Height / (y_density * units_per_inch)); } - List Comments = new ArrayList(); - List commentSegments = readSegments(byteSource, + List Comments = new ArrayList(); + List commentSegments = readSegments(byteSource, new int[] { COMMarker }, false); for (int i = 0; i < commentSegments.size(); i++) { @@ -1039,7 +1022,7 @@ public class JpegImageParser extends Ima pw.println(""); { - List segments = readSegments(byteSource, null, false); + List segments = readSegments(byteSource, null, false); if (segments == null) throw new ImageReadException("No Segments Found."); Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/exif/ExifRewriter.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/exif/ExifRewriter.java?rev=1240502&r1=1240501&r2=1240502&view=diff ============================================================================== --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/exif/ExifRewriter.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/exif/ExifRewriter.java Sat Feb 4 13:50:39 2012 @@ -33,6 +33,7 @@ import org.apache.commons.sanselan.commo import org.apache.commons.sanselan.common.bytesource.ByteSourceInputStream; import org.apache.commons.sanselan.formats.jpeg.JpegConstants; import org.apache.commons.sanselan.formats.jpeg.JpegUtils; +import org.apache.commons.sanselan.formats.jpeg.segments.JfifSegment; import org.apache.commons.sanselan.formats.tiff.write.TiffImageWriterBase; import org.apache.commons.sanselan.formats.tiff.write.TiffImageWriterLossless; import org.apache.commons.sanselan.formats.tiff.write.TiffImageWriterLossy; @@ -71,10 +72,10 @@ public class ExifRewriter extends Binary private static class JFIFPieces { - public final List pieces; - public final List exifPieces; + public final List pieces; + public final List exifPieces; - public JFIFPieces(final List pieces, final List exifPieces) + public JFIFPieces(final List pieces, final List exifPieces) { this.pieces = pieces; this.exifPieces = exifPieces; @@ -145,8 +146,8 @@ public class ExifRewriter extends Binary throws ImageReadException, IOException // , ImageWriteException { - final List pieces = new ArrayList(); - final List exifPieces = new ArrayList(); + final List pieces = new ArrayList(); + final List exifPieces = new ArrayList(); JpegUtils.Visitor visitor = new JpegUtils.Visitor() { @@ -266,7 +267,7 @@ public class ExifRewriter extends Binary throws ImageReadException, IOException, ImageWriteException { JFIFPieces jfifPieces = analyzeJFIF(byteSource); - List pieces = jfifPieces.pieces; + List pieces = jfifPieces.pieces; // Debug.debug("pieces", pieces); @@ -359,7 +360,7 @@ public class ExifRewriter extends Binary { // List outputDirectories = outputSet.getDirectories(); JFIFPieces jfifPieces = analyzeJFIF(byteSource); - List pieces = jfifPieces.pieces; + List pieces = jfifPieces.pieces; TiffImageWriterBase writer; // Just use first APP1 segment for now. @@ -453,7 +454,7 @@ public class ExifRewriter extends Binary ImageWriteException { JFIFPieces jfifPieces = analyzeJFIF(byteSource); - List pieces = jfifPieces.pieces; + List pieces = jfifPieces.pieces; TiffImageWriterBase writer = new TiffImageWriterLossy( outputSet.byteOrder); @@ -464,7 +465,7 @@ public class ExifRewriter extends Binary writeSegmentsReplacingExif(os, pieces, newBytes); } - private void writeSegmentsReplacingExif(OutputStream os, List segments, + private void writeSegmentsReplacingExif(OutputStream os, List segments, byte newBytes[]) throws ImageWriteException, IOException { int byteOrder = getByteOrder(); Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/App2Segment.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/App2Segment.java?rev=1240502&r1=1240501&r2=1240502&view=diff ============================================================================== --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/App2Segment.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/App2Segment.java Sat Feb 4 13:50:39 2012 @@ -23,7 +23,7 @@ import java.io.InputStream; import org.apache.commons.sanselan.ImageReadException; import org.apache.commons.sanselan.formats.jpeg.JpegImageParser; -public class App2Segment extends AppnSegment implements Comparable +public class App2Segment extends AppnSegment implements Comparable { public final byte icc_bytes[]; public final int cur_marker, num_markers; @@ -64,9 +64,8 @@ public class App2Segment extends AppnSeg } } - public int compareTo(Object o) + public int compareTo(App2Segment other) { - App2Segment other = (App2Segment) o; return cur_marker - other.cur_marker; } Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpRewriter.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpRewriter.java?rev=1240502&r1=1240501&r2=1240502&view=diff ============================================================================== --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpRewriter.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpRewriter.java Sat Feb 4 13:50:39 2012 @@ -110,7 +110,7 @@ public class JpegXmpRewriter extends Jpe throws ImageReadException, IOException { JFIFPieces jfifPieces = analyzeJFIF(byteSource); - List pieces = jfifPieces.pieces; + List pieces = jfifPieces.pieces; pieces = removeXmpSegments(pieces); writeSegments(os, pieces); } @@ -185,10 +185,10 @@ public class JpegXmpRewriter extends Jpe ImageWriteException { JFIFPieces jfifPieces = analyzeJFIF(byteSource); - List pieces = jfifPieces.pieces; + List pieces = jfifPieces.pieces; pieces = removeXmpSegments(pieces); - List newPieces = new ArrayList(); + List newPieces = new ArrayList(); byte xmpXmlBytes[] = xmpXml.getBytes("utf-8"); int index = 0; while (index < xmpXmlBytes.length)