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/11/06 06:01:05 UTC

svn commit: r1539242 [1/2] - in /commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging: formats/jpeg/ formats/jpeg/decoder/ formats/jpeg/exif/ formats/jpeg/iptc/ formats/jpeg/segments/ formats/jpeg/xmp/ formats/pcx/ formats/png/ formats...

Author: damjan
Date: Wed Nov  6 05:01:04 2013
New Revision: 1539242

URL: http://svn.apache.org/r1539242
Log:
Goodbye constant instances.


Modified:
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegConstants.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageParser.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegPhotoshopMetadata.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegUtils.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/decoder/JpegDecoder.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/exif/ExifRewriter.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcConstants.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcParser.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcTypeLookup.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/JpegIptcRewriter.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/PhotoshopApp13Data.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/JfifSegment.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegRewriter.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpParser.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriter.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pcx/PcxConstants.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pcx/PcxImageParser.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pcx/PcxWriter.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/png/PngConstants.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/png/PngImageParser.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/png/PngWriter.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pnm/PamWriter.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pnm/PbmWriter.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pnm/PgmWriter.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pnm/PnmConstants.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pnm/PnmImageParser.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pnm/PpmWriter.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tga/TgaConstants.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/icc/IccConstants.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/icc/IccProfileInfo.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/icc/IccProfileParser.java
    commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/icc/IccTag.java

Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegConstants.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegConstants.java?rev=1539242&r1=1539241&r2=1539242&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegConstants.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegConstants.java Wed Nov  6 05:01:04 2013
@@ -23,7 +23,7 @@ import java.util.List;
 import org.apache.commons.imaging.common.BinaryConstant;
 import org.apache.commons.imaging.common.BinaryFunctions;
 
-public interface JpegConstants {
+public class JpegConstants {
     public static final int MAX_SEGMENT_SIZE = 0xffff;
 
     public static final BinaryConstant JFIF0_SIGNATURE = new BinaryConstant(

Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageParser.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageParser.java?rev=1539242&r1=1539241&r2=1539242&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageParser.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageParser.java Wed Nov  6 05:01:04 2013
@@ -58,7 +58,7 @@ import org.apache.commons.imaging.format
 import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants;
 import org.apache.commons.imaging.util.Debug;
 
-public class JpegImageParser extends ImageParser implements JpegConstants {
+public class JpegImageParser extends ImageParser {
     public JpegImageParser() {
         setByteOrder(ByteOrder.BIG_ENDIAN);
         // setDebug(true);
@@ -117,11 +117,20 @@ public class JpegImageParser extends Ima
         final JpegImageParser parser = this;
         final int[] sofnSegments = {
                 // kJFIFMarker,
-                SOF0Marker,
-
-                SOF1Marker, SOF2Marker, SOF3Marker, SOF5Marker, SOF6Marker,
-                SOF7Marker, SOF9Marker, SOF10Marker, SOF11Marker, SOF13Marker,
-                SOF14Marker, SOF15Marker, };
+                JpegConstants.SOF0Marker,
+                JpegConstants.SOF1Marker,
+                JpegConstants.SOF2Marker,
+                JpegConstants.SOF3Marker,
+                JpegConstants.SOF5Marker,
+                JpegConstants.SOF6Marker,
+                JpegConstants.SOF7Marker,
+                JpegConstants.SOF9Marker,
+                JpegConstants.SOF10Marker,
+                JpegConstants.SOF11Marker,
+                JpegConstants.SOF13Marker,
+                JpegConstants.SOF14Marker,
+                JpegConstants.SOF15Marker,
+        };
 
         final JpegUtils.Visitor visitor = new JpegUtils.Visitor() {
             // return false to exit before reading image data.
@@ -137,7 +146,7 @@ public class JpegImageParser extends Ima
             public boolean visitSegment(final int marker, final byte markerBytes[],
                     final int markerLength, final byte markerLengthBytes[],
                     final byte segmentData[]) throws ImageReadException, IOException {
-                if (marker == EOIMarker) {
+                if (marker == JpegConstants.EOIMarker) {
                     return false;
                 }
 
@@ -151,23 +160,23 @@ public class JpegImageParser extends Ima
                     return true;
                 }
 
-                if (marker == JPEG_APP13_Marker) {
+                if (marker == JpegConstants.JPEG_APP13_Marker) {
                     // Debug.debug("app 13 segment data", segmentData.length);
                     result.add(new App13Segment(parser, marker, segmentData));
-                } else if (marker == JPEG_APP14_Marker) {
+                } else if (marker == JpegConstants.JPEG_APP14_Marker) {
                     result.add(new App14Segment(marker, segmentData));
-                } else if (marker == JPEG_APP2_Marker) {
+                } else if (marker == JpegConstants.JPEG_APP2_Marker) {
                     result.add(new App2Segment(marker, segmentData));
-                } else if (marker == JFIFMarker) {
+                } else if (marker == JpegConstants.JFIFMarker) {
                     result.add(new JfifSegment(marker, segmentData));
                 } else if (Arrays.binarySearch(sofnSegments, marker) >= 0) {
                     result.add(new SofnSegment(marker, segmentData));
-                } else if (marker == DQTMarker) {
+                } else if (marker == JpegConstants.DQTMarker) {
                     result.add(new DqtSegment(marker, segmentData));
-                } else if ((marker >= JPEG_APP1_Marker)
-                        && (marker <= JPEG_APP15_Marker)) {
+                } else if ((marker >= JpegConstants.JPEG_APP1_Marker)
+                        && (marker <= JpegConstants.JPEG_APP15_Marker)) {
                     result.add(new UnknownSegment(marker, segmentData));
-                } else if (marker == COMMarker) {
+                } else if (marker == JpegConstants.COMMarker) {
                     result.add(new ComSegment(marker, segmentData));
                 }
 
@@ -274,7 +283,7 @@ public class JpegImageParser extends Ima
     public byte[] getICCProfileBytes(final ByteSource byteSource, final Map<String,Object> params)
             throws ImageReadException, IOException {
         final List<Segment> segments = readSegments(byteSource,
-                new int[] { JPEG_APP2_Marker, }, false);
+                new int[] { JpegConstants.JPEG_APP2_Marker, }, false);
 
         final List<App2Segment> filtered = new ArrayList<App2Segment>();
         if (segments != null) {
@@ -322,7 +331,7 @@ public class JpegImageParser extends Ima
     }
 
     public static boolean isExifAPP1Segment(final GenericSegment segment) {
-        return startsWith(segment.getSegmentData(), EXIF_IDENTIFIER_CODE);
+        return startsWith(segment.getSegmentData(), JpegConstants.EXIF_IDENTIFIER_CODE);
     }
 
     private List<Segment> filterAPP1Segments(final List<Segment> v) {
@@ -359,7 +368,7 @@ public class JpegImageParser extends Ima
     public byte[] getExifRawData(final ByteSource byteSource)
             throws ImageReadException, IOException {
         final List<Segment> segments = readSegments(byteSource,
-                new int[] { JPEG_APP1_Marker, }, false);
+                new int[] { JpegConstants.JPEG_APP1_Marker, }, false);
 
         if ((segments == null) || (segments.size() < 1)) {
             return null;
@@ -416,8 +425,8 @@ public class JpegImageParser extends Ima
                     return false;
                 }
 
-                if (marker == JPEG_APP1_Marker) {
-                    if (startsWith(segmentData, EXIF_IDENTIFIER_CODE)) {
+                if (marker == JpegConstants.JPEG_APP1_Marker) {
+                    if (startsWith(segmentData, JpegConstants.EXIF_IDENTIFIER_CODE)) {
                         result[0] = true;
                         return false;
                     }
@@ -454,7 +463,7 @@ public class JpegImageParser extends Ima
                     return false;
                 }
 
-                if (marker == JPEG_APP13_Marker) {
+                if (marker == JpegConstants.JPEG_APP13_Marker) {
                     if (new IptcParser().isPhotoshopJpegSegment(segmentData)) {
                         result[0] = true;
                         return false;
@@ -492,7 +501,7 @@ public class JpegImageParser extends Ima
                     return false;
                 }
 
-                if (marker == JPEG_APP1_Marker) {
+                if (marker == JpegConstants.JPEG_APP1_Marker) {
                     if (new JpegXmpParser().isXmpJpegSegment(segmentData)) {
                         result[0] = true;
                         return false;
@@ -541,7 +550,7 @@ public class JpegImageParser extends Ima
                     return false;
                 }
 
-                if (marker == JPEG_APP1_Marker) {
+                if (marker == JpegConstants.JPEG_APP1_Marker) {
                     if (new JpegXmpParser().isXmpJpegSegment(segmentData)) {
                         result.add(new JpegXmpParser()
                                 .parseXmpJpegSegment(segmentData));
@@ -567,7 +576,7 @@ public class JpegImageParser extends Ima
     public JpegPhotoshopMetadata getPhotoshopMetadata(final ByteSource byteSource,
             final Map<String,Object> params) throws ImageReadException, IOException {
         final List<Segment> segments = readSegments(byteSource,
-                new int[] { JPEG_APP13_Marker, }, false);
+                new int[] { JpegConstants.JPEG_APP13_Marker, }, false);
 
         if ((segments == null) || (segments.size() < 1)) {
             return null;
@@ -598,11 +607,19 @@ public class JpegImageParser extends Ima
             throws ImageReadException, IOException {
         final List<Segment> segments = readSegments(byteSource, new int[] {
                 // kJFIFMarker,
-                SOF0Marker,
-
-                SOF1Marker, SOF2Marker, SOF3Marker, SOF5Marker, SOF6Marker,
-                SOF7Marker, SOF9Marker, SOF10Marker, SOF11Marker, SOF13Marker,
-                SOF14Marker, SOF15Marker,
+                JpegConstants.SOF0Marker,
+                JpegConstants.SOF1Marker,
+                JpegConstants.SOF2Marker,
+                JpegConstants.SOF3Marker,
+                JpegConstants.SOF5Marker,
+                JpegConstants.SOF6Marker,
+                JpegConstants.SOF7Marker,
+                JpegConstants.SOF9Marker,
+                JpegConstants.SOF10Marker,
+                JpegConstants.SOF11Marker,
+                JpegConstants.SOF13Marker,
+                JpegConstants.SOF14Marker,
+                JpegConstants.SOF15Marker,
 
         }, true);
 
@@ -636,9 +653,19 @@ public class JpegImageParser extends Ima
         final List<Segment> SOF_segments = readSegments(byteSource, new int[] {
                 // kJFIFMarker,
 
-                SOF0Marker, SOF1Marker, SOF2Marker, SOF3Marker, SOF5Marker,
-                SOF6Marker, SOF7Marker, SOF9Marker, SOF10Marker, SOF11Marker,
-                SOF13Marker, SOF14Marker, SOF15Marker,
+                JpegConstants.SOF0Marker,
+                JpegConstants.SOF1Marker,
+                JpegConstants.SOF2Marker,
+                JpegConstants.SOF3Marker,
+                JpegConstants.SOF5Marker,
+                JpegConstants.SOF6Marker,
+                JpegConstants.SOF7Marker,
+                JpegConstants.SOF9Marker,
+                JpegConstants.SOF10Marker,
+                JpegConstants.SOF11Marker,
+                JpegConstants.SOF13Marker,
+                JpegConstants.SOF14Marker,
+                JpegConstants.SOF15Marker,
 
         }, false);
 
@@ -651,7 +678,7 @@ public class JpegImageParser extends Ima
         // + SOF_segments.size());
 
         final List<Segment> jfifSegments = readSegments(byteSource,
-                new int[] { JFIFMarker, }, true);
+                new int[] { JpegConstants.JFIFMarker, }, true);
 
         final SofnSegment fSOFNSegment = (SofnSegment) SOF_segments.get(0);
         // SofnSegment fSOFNSegment = (SofnSegment) findSegment(segments,
@@ -670,7 +697,7 @@ public class JpegImageParser extends Ima
             jfifSegment = (JfifSegment) jfifSegments.get(0);
         }
 
-        final List<Segment> app14Segments = readSegments(byteSource, new int[] { JPEG_APP14_Marker }, true);
+        final List<Segment> app14Segments = readSegments(byteSource, new int[] { JpegConstants.JPEG_APP14_Marker }, true);
         App14Segment app14Segment = null;
         if (app14Segments != null && !app14Segments.isEmpty()) {
             app14Segment = (App14Segment) app14Segments.get(0);
@@ -769,7 +796,7 @@ public class JpegImageParser extends Ima
 
         final List<String> Comments = new ArrayList<String>();
         final List<Segment> commentSegments = readSegments(byteSource,
-                new int[] { COMMarker }, false);
+                new int[] { JpegConstants.COMMarker }, false);
         for (int i = 0; i < commentSegments.size(); i++) {
             final ComSegment comSegment = (ComSegment) commentSegments.get(i);
             String comment = "";
@@ -790,7 +817,7 @@ public class JpegImageParser extends Ima
         // we ought to count images, but don't yet.
         final int NumberOfImages = 1;
         // not accurate ... only reflects first
-        final boolean isProgressive = fSOFNSegment.marker == SOF2Marker;
+        final boolean isProgressive = fSOFNSegment.marker == JpegConstants.SOF2Marker;
 
         boolean isTransparent = false;
         final boolean usesPalette = false; // TODO: inaccurate.

Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegPhotoshopMetadata.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegPhotoshopMetadata.java?rev=1539242&r1=1539241&r2=1539242&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegPhotoshopMetadata.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegPhotoshopMetadata.java Wed Nov  6 05:01:04 2013
@@ -20,14 +20,12 @@ import java.util.Collections;
 import java.util.List;
 
 import org.apache.commons.imaging.common.ImageMetadata;
-import org.apache.commons.imaging.formats.jpeg.iptc.IptcConstants;
 import org.apache.commons.imaging.formats.jpeg.iptc.IptcRecord;
 import org.apache.commons.imaging.formats.jpeg.iptc.IptcTypes;
 import org.apache.commons.imaging.formats.jpeg.iptc.PhotoshopApp13Data;
 import org.apache.commons.imaging.util.Debug;
 
-public class JpegPhotoshopMetadata extends ImageMetadata implements
-        IptcConstants {
+public class JpegPhotoshopMetadata extends ImageMetadata {
 
     public final PhotoshopApp13Data photoshopApp13Data;
 

Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegUtils.java?rev=1539242&r1=1539241&r2=1539242&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegUtils.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegUtils.java Wed Nov  6 05:01:04 2013
@@ -26,7 +26,7 @@ import org.apache.commons.imaging.common
 import org.apache.commons.imaging.util.Debug;
 import org.apache.commons.imaging.util.IoUtils;
 
-public class JpegUtils extends BinaryFileParser implements JpegConstants {
+public class JpegUtils extends BinaryFileParser {
     public JpegUtils() {
         setByteOrder(ByteOrder.NETWORK);
     }
@@ -52,7 +52,7 @@ public class JpegUtils extends BinaryFil
         try {
             is = byteSource.getInputStream();
 
-            readAndVerifyBytes(is, SOI,
+            readAndVerifyBytes(is, JpegConstants.SOI,
                     "Not a Valid JPEG File: doesn't begin with 0xffd8");
 
             int markerCount;
@@ -67,7 +67,7 @@ public class JpegUtils extends BinaryFil
                 final int marker = ((0xff & markerBytes[0]) << 8)
                         | (0xff & markerBytes[1]);
 
-                if (marker == EOIMarker || marker == SOS_Marker) {
+                if (marker == JpegConstants.EOIMarker || marker == JpegConstants.SOS_Marker) {
                     if (!visitor.beginSOS()) {
                         canThrow = true;
                         return;
@@ -102,57 +102,57 @@ public class JpegUtils extends BinaryFil
 
     public static String getMarkerName(final int marker) {
         switch (marker) {
-        case SOS_Marker:
+        case JpegConstants.SOS_Marker:
             return "SOS_Marker";
             // case JPEG_APP0 :
             // return "JPEG_APP0";
             // case JPEG_APP0_Marker :
             // return "JPEG_APP0_Marker";
-        case JPEG_APP1_Marker:
+        case JpegConstants.JPEG_APP1_Marker:
             return "JPEG_APP1_Marker";
-        case JPEG_APP2_Marker:
+        case JpegConstants.JPEG_APP2_Marker:
             return "JPEG_APP2_Marker";
-        case JPEG_APP13_Marker:
+        case JpegConstants.JPEG_APP13_Marker:
             return "JPEG_APP13_Marker";
-        case JPEG_APP14_Marker:
+        case JpegConstants.JPEG_APP14_Marker:
             return "JPEG_APP14_Marker";
-        case JPEG_APP15_Marker:
+        case JpegConstants.JPEG_APP15_Marker:
             return "JPEG_APP15_Marker";
-        case JFIFMarker:
+        case JpegConstants.JFIFMarker:
             return "JFIFMarker";
-        case SOF0Marker:
+        case JpegConstants.SOF0Marker:
             return "SOF0Marker";
-        case SOF1Marker:
+        case JpegConstants.SOF1Marker:
             return "SOF1Marker";
-        case SOF2Marker:
+        case JpegConstants.SOF2Marker:
             return "SOF2Marker";
-        case SOF3Marker:
+        case JpegConstants.SOF3Marker:
             return "SOF3Marker";
-        case DHTMarker:
+        case JpegConstants.DHTMarker:
             return "SOF4Marker";
-        case SOF5Marker:
+        case JpegConstants.SOF5Marker:
             return "SOF5Marker";
-        case SOF6Marker:
+        case JpegConstants.SOF6Marker:
             return "SOF6Marker";
-        case SOF7Marker:
+        case JpegConstants.SOF7Marker:
             return "SOF7Marker";
-        case SOF8Marker:
+        case JpegConstants.SOF8Marker:
             return "SOF8Marker";
-        case SOF9Marker:
+        case JpegConstants.SOF9Marker:
             return "SOF9Marker";
-        case SOF10Marker:
+        case JpegConstants.SOF10Marker:
             return "SOF10Marker";
-        case SOF11Marker:
+        case JpegConstants.SOF11Marker:
             return "SOF11Marker";
-        case DACMarker:
+        case JpegConstants.DACMarker:
             return "DACMarker";
-        case SOF13Marker:
+        case JpegConstants.SOF13Marker:
             return "SOF13Marker";
-        case SOF14Marker:
+        case JpegConstants.SOF14Marker:
             return "SOF14Marker";
-        case SOF15Marker:
+        case JpegConstants.SOF15Marker:
             return "SOF15Marker";
-        case DQTMarker:
+        case JpegConstants.DQTMarker:
             return "DQTMarker";
         default:
             return "Unknown";

Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/decoder/JpegDecoder.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/decoder/JpegDecoder.java?rev=1539242&r1=1539241&r2=1539242&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/decoder/JpegDecoder.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/decoder/JpegDecoder.java Wed Nov  6 05:01:04 2013
@@ -37,8 +37,7 @@ import org.apache.commons.imaging.format
 import org.apache.commons.imaging.formats.jpeg.segments.SofnSegment;
 import org.apache.commons.imaging.formats.jpeg.segments.SosSegment;
 
-public class JpegDecoder extends BinaryFileParser implements JpegUtils.Visitor,
-        JpegConstants {
+public class JpegDecoder extends BinaryFileParser implements JpegUtils.Visitor {
     /*
      * JPEG is an advanced image format that takes significant computation to
      * decode. Keep decoding fast: - Don't allocate memory inside loops,
@@ -170,18 +169,29 @@ public class JpegDecoder extends BinaryF
     public boolean visitSegment(final int marker, final byte[] markerBytes,
             final int segmentLength, final byte[] segmentLengthBytes, final byte[] segmentData)
             throws ImageReadException, IOException {
-        final int[] sofnSegments = { SOF0Marker, SOF1Marker, SOF2Marker,
-                SOF3Marker, SOF5Marker, SOF6Marker, SOF7Marker, SOF9Marker,
-                SOF10Marker, SOF11Marker, SOF13Marker, SOF14Marker,
-                SOF15Marker, };
+        final int[] sofnSegments = {
+                JpegConstants.SOF0Marker,
+                JpegConstants.SOF1Marker,
+                JpegConstants.SOF2Marker,
+                JpegConstants.SOF3Marker,
+                JpegConstants.SOF5Marker,
+                JpegConstants.SOF6Marker,
+                JpegConstants.SOF7Marker,
+                JpegConstants.SOF9Marker,
+                JpegConstants.SOF10Marker,
+                JpegConstants.SOF11Marker,
+                JpegConstants.SOF13Marker,
+                JpegConstants.SOF14Marker,
+                JpegConstants.SOF15Marker,
+        };
 
         if (Arrays.binarySearch(sofnSegments, marker) >= 0) {
-            if (marker != SOF0Marker) {
+            if (marker != JpegConstants.SOF0Marker) {
                 throw new ImageReadException("Only sequential, baseline JPEGs "
                         + "are supported at the moment");
             }
             sofnSegment = new SofnSegment(marker, segmentData);
-        } else if (marker == DQTMarker) {
+        } else if (marker == JpegConstants.DQTMarker) {
             final DqtSegment dqtSegment = new DqtSegment(marker, segmentData);
             for (int i = 0; i < dqtSegment.quantizationTables.size(); i++) {
                 final DqtSegment.QuantizationTable table = dqtSegment.quantizationTables
@@ -202,7 +212,7 @@ public class JpegDecoder extends BinaryF
                 Dct.scaleDequantizationMatrix(quantizationMatrixFloat);
                 scaledQuantizationTables[table.destinationIdentifier] = quantizationMatrixFloat;
             }
-        } else if (marker == DHTMarker) {
+        } else if (marker == JpegConstants.DHTMarker) {
             final DhtSegment dhtSegment = new DhtSegment(marker, segmentData);
             for (int i = 0; i < dhtSegment.huffmanTables.size(); i++) {
                 final DhtSegment.HuffmanTable table = dhtSegment.huffmanTables.get(i);

Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/exif/ExifRewriter.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/exif/ExifRewriter.java?rev=1539242&r1=1539241&r2=1539242&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/exif/ExifRewriter.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/exif/ExifRewriter.java Wed Nov  6 05:01:04 2013
@@ -49,7 +49,7 @@ import org.apache.commons.imaging.util.I
  * @see <a
  *      href="https://svn.apache.org/repos/asf/commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/examples/WriteExifMetadataExample.java">org.apache.commons.imaging.examples.WriteExifMetadataExample</a>
  */
-public class ExifRewriter extends BinaryFileParser implements JpegConstants {
+public class ExifRewriter extends BinaryFileParser {
     /**
      * Constructor. to guess whether a file contains an image based on its file
      * extension.
@@ -157,11 +157,11 @@ public class ExifRewriter extends Binary
                     final byte segmentData[]) throws
             // ImageWriteException,
                     ImageReadException, IOException {
-                if (marker != JPEG_APP1_Marker) {
+                if (marker != JpegConstants.JPEG_APP1_Marker) {
                     pieces.add(new JFIFPieceSegment(marker, markerBytes,
                             markerLengthBytes, segmentData));
                 } else if (!startsWith(segmentData,
-                        EXIF_IDENTIFIER_CODE)) {
+                        JpegConstants.EXIF_IDENTIFIER_CODE)) {
                     pieces.add(new JFIFPieceSegment(marker, markerBytes,
                             markerLengthBytes, segmentData));
                 // } else if (exifSegmentArray[0] != null) {
@@ -499,7 +499,7 @@ public class ExifRewriter extends Binary
 
         boolean canThrow = false;
         try {
-            SOI.writeTo(os);
+            JpegConstants.SOI.writeTo(os);
 
             boolean hasExif = false;
 
@@ -511,7 +511,7 @@ public class ExifRewriter extends Binary
             }
 
             if (!hasExif && newBytes != null) {
-                final byte markerBytes[] = toBytes((short)JPEG_APP1_Marker);
+                final byte markerBytes[] = toBytes((short)JpegConstants.JPEG_APP1_Marker);
                 if (newBytes.length > 0xffff) {
                     throw new ExifOverflowException(
                             "APP1 Segment is too long: " + newBytes.length);
@@ -522,10 +522,10 @@ public class ExifRewriter extends Binary
                 int index = 0;
                 final JFIFPieceSegment firstSegment = (JFIFPieceSegment) segments
                         .get(index);
-                if (firstSegment.marker == JFIFMarker) {
+                if (firstSegment.marker == JpegConstants.JFIFMarker) {
                     index = 1;
                 }
-                segments.add(0, new JFIFPieceSegmentExif(JPEG_APP1_Marker,
+                segments.add(0, new JFIFPieceSegmentExif(JpegConstants.JPEG_APP1_Marker,
                         markerBytes, markerLengthBytes, newBytes));
             }
 
@@ -544,7 +544,7 @@ public class ExifRewriter extends Binary
                         continue;
                     }
 
-                    final byte markerBytes[] = toBytes((short)JPEG_APP1_Marker);
+                    final byte markerBytes[] = toBytes((short)JpegConstants.JPEG_APP1_Marker);
                     if (newBytes.length > 0xffff) {
                         throw new ExifOverflowException(
                                 "APP1 Segment is too long: " + newBytes.length);
@@ -579,7 +579,7 @@ public class ExifRewriter extends Binary
         final ByteArrayOutputStream os = new ByteArrayOutputStream();
 
         if (includeEXIFPrefix) {
-            EXIF_IDENTIFIER_CODE.writeTo(os);
+            JpegConstants.EXIF_IDENTIFIER_CODE.writeTo(os);
             os.write(0);
             os.write(0);
         }

Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcConstants.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcConstants.java?rev=1539242&r1=1539241&r2=1539242&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcConstants.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcConstants.java Wed Nov  6 05:01:04 2013
@@ -16,9 +16,8 @@
  */
 package org.apache.commons.imaging.formats.jpeg.iptc;
 
-import org.apache.commons.imaging.formats.jpeg.JpegConstants;
 
-public interface IptcConstants extends JpegConstants {
+public class IptcConstants {
     public static final int IPTC_NON_EXTENDED_RECORD_MAXIMUM_SIZE = 32767;
 
     public static final int IMAGE_RESOURCE_BLOCK_PHOTOSHOP2_INFO = 0x03e8;

Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcParser.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcParser.java?rev=1539242&r1=1539241&r2=1539242&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcParser.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcParser.java Wed Nov  6 05:01:04 2013
@@ -33,11 +33,12 @@ import org.apache.commons.imaging.common
 import org.apache.commons.imaging.common.BinaryOutputStream;
 import org.apache.commons.imaging.common.ByteConversions;
 import org.apache.commons.imaging.common.ByteOrder;
+import org.apache.commons.imaging.formats.jpeg.JpegConstants;
 import org.apache.commons.imaging.util.Debug;
 import org.apache.commons.imaging.util.IoUtils;
 import org.apache.commons.imaging.util.ParamMap;
 
-public class IptcParser extends BinaryFileParser implements IptcConstants {
+public class IptcParser extends BinaryFileParser {
     private static final ByteOrder APP13_BYTE_ORDER = ByteOrder.NETWORK;
 
     public IptcParser() {
@@ -46,13 +47,13 @@ public class IptcParser extends BinaryFi
 
     public boolean isPhotoshopJpegSegment(final byte segmentData[]) {
         if (!BinaryFileParser.startsWith(segmentData,
-                PHOTOSHOP_IDENTIFICATION_STRING)) {
+                JpegConstants.PHOTOSHOP_IDENTIFICATION_STRING)) {
             return false;
         }
 
-        final int index = PHOTOSHOP_IDENTIFICATION_STRING.size();
+        final int index = JpegConstants.PHOTOSHOP_IDENTIFICATION_STRING.size();
         return (index + 4) <= segmentData.length &&
-                ByteConversions.toInt(segmentData, index, APP13_BYTE_ORDER) == CONST_8BIM;
+                ByteConversions.toInt(segmentData, index, APP13_BYTE_ORDER) == JpegConstants.CONST_8BIM;
     }
 
     /*
@@ -137,7 +138,7 @@ public class IptcParser extends BinaryFi
                                 + ")");
             }
 
-            if (tagMarker != IPTC_RECORD_TAG_MARKER) {
+            if (tagMarker != IptcConstants.IPTC_RECORD_TAG_MARKER) {
                 if (verbose) {
                     System.out.println("Unexpected record tag marker in IPTC data.");
                 }
@@ -181,7 +182,7 @@ public class IptcParser extends BinaryFi
             final int recordSize = toUInt16(bytes, index);
             index += 2;
 
-            final boolean extendedDataset = recordSize > IPTC_NON_EXTENDED_RECORD_MAXIMUM_SIZE;
+            final boolean extendedDataset = recordSize > IptcConstants.IPTC_NON_EXTENDED_RECORD_MAXIMUM_SIZE;
             final int dataFieldCountLength = recordSize & 0x7fff;
             if (extendedDataset && verbose) {
                 Debug.debug("extendedDataset. dataFieldCountLength: "
@@ -198,7 +199,7 @@ public class IptcParser extends BinaryFi
             // Debug.debug("recordSize", recordSize + " (0x"
             // + Integer.toHexString(recordSize) + ")");
 
-            if (recordNumber != IPTC_APPLICATION_2_RECORD_NUMBER) {
+            if (recordNumber != IptcConstants.IPTC_APPLICATION_2_RECORD_NUMBER) {
                 continue;
             }
 
@@ -269,9 +270,9 @@ public class IptcParser extends BinaryFi
             // number of bytes (including the 1st byte, which is the size.)
     
             final byte[] idString = bis.readBytes(
-                    PHOTOSHOP_IDENTIFICATION_STRING.size(),
+                    JpegConstants.PHOTOSHOP_IDENTIFICATION_STRING.size(),
                     "App13 Segment missing identification string");
-            if (!PHOTOSHOP_IDENTIFICATION_STRING.equals(idString)) {
+            if (!JpegConstants.PHOTOSHOP_IDENTIFICATION_STRING.equals(idString)) {
                 throw new ImageReadException("Not a Photoshop App13 Segment");
             }
     
@@ -285,7 +286,7 @@ public class IptcParser extends BinaryFi
                 } catch (final IOException ioEx) {
                     break;
                 }
-                if (imageResourceBlockSignature != CONST_8BIM) {
+                if (imageResourceBlockSignature != JpegConstants.CONST_8BIM) {
                     throw new ImageReadException(
                             "Invalid Image Resource Block Signature");
                 }
@@ -372,13 +373,13 @@ public class IptcParser extends BinaryFi
         final ByteArrayOutputStream os = new ByteArrayOutputStream();
         final BinaryOutputStream bos = new BinaryOutputStream(os);
 
-        PHOTOSHOP_IDENTIFICATION_STRING.writeTo(bos);
+        JpegConstants.PHOTOSHOP_IDENTIFICATION_STRING.writeTo(bos);
 
         final List<IptcBlock> blocks = data.getRawBlocks();
         for (int i = 0; i < blocks.size(); i++) {
             final IptcBlock block = blocks.get(i);
 
-            bos.write4Bytes(CONST_8BIM);
+            bos.write4Bytes(JpegConstants.CONST_8BIM);
 
             if (block.blockType < 0 || block.blockType > 0xffff) {
                 throw new ImageWriteException("Invalid IPTC block type.");
@@ -395,7 +396,7 @@ public class IptcParser extends BinaryFi
                 bos.write(0); // pad to even size, including length byte.
             }
 
-            if (block.blockData.length > IPTC_NON_EXTENDED_RECORD_MAXIMUM_SIZE) {
+            if (block.blockData.length > IptcConstants.IPTC_NON_EXTENDED_RECORD_MAXIMUM_SIZE) {
                 throw new ImageWriteException("IPTC block data is too long: "
                         + block.blockData.length);
             }
@@ -422,8 +423,8 @@ public class IptcParser extends BinaryFi
                     getByteOrder());
     
             // first, right record version record
-            bos.write(IPTC_RECORD_TAG_MARKER);
-            bos.write(IPTC_APPLICATION_2_RECORD_NUMBER);
+            bos.write(IptcConstants.IPTC_RECORD_TAG_MARKER);
+            bos.write(IptcConstants.IPTC_APPLICATION_2_RECORD_NUMBER);
             bos.write(IptcTypes.RECORD_VERSION.type); // record version record
                                                       // type.
             bos.write2Bytes(2); // record version record size
@@ -449,8 +450,8 @@ public class IptcParser extends BinaryFi
                     continue; // ignore
                 }
     
-                bos.write(IPTC_RECORD_TAG_MARKER);
-                bos.write(IPTC_APPLICATION_2_RECORD_NUMBER);
+                bos.write(IptcConstants.IPTC_RECORD_TAG_MARKER);
+                bos.write(IptcConstants.IPTC_APPLICATION_2_RECORD_NUMBER);
                 if (element.iptcType.getType() < 0
                         || element.iptcType.getType() > 0xff) {
                     throw new ImageWriteException("Invalid record type: "

Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcTypeLookup.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcTypeLookup.java?rev=1539242&r1=1539241&r2=1539242&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcTypeLookup.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcTypeLookup.java Wed Nov  6 05:01:04 2013
@@ -19,7 +19,7 @@ package org.apache.commons.imaging.forma
 import java.util.HashMap;
 import java.util.Map;
 
-public abstract class IptcTypeLookup implements IptcConstants {
+public abstract class IptcTypeLookup {
 
     private static final Map<Integer, IptcType> IPTC_TYPE_MAP = new HashMap<Integer, IptcType>();
     static {

Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/JpegIptcRewriter.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/JpegIptcRewriter.java?rev=1539242&r1=1539241&r2=1539242&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/JpegIptcRewriter.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/JpegIptcRewriter.java Wed Nov  6 05:01:04 2013
@@ -32,12 +32,13 @@ import org.apache.commons.imaging.common
 import org.apache.commons.imaging.common.bytesource.ByteSourceArray;
 import org.apache.commons.imaging.common.bytesource.ByteSourceFile;
 import org.apache.commons.imaging.common.bytesource.ByteSourceInputStream;
+import org.apache.commons.imaging.formats.jpeg.JpegConstants;
 import org.apache.commons.imaging.formats.jpeg.xmp.JpegRewriter;
 
 /**
  * Interface for Exif write/update/remove functionality for Jpeg/JFIF images.
  */
-public class JpegIptcRewriter extends JpegRewriter implements IptcConstants {
+public class JpegIptcRewriter extends JpegRewriter {
 
     /**
      * Reads a Jpeg image, removes all IPTC data from the App13 segment but
@@ -221,7 +222,7 @@ public class JpegIptcRewriter extends Jp
             final byte[] newBlockBytes = new IptcParser().writeIPTCBlock(newData
                     .getRecords());
 
-            final int blockType = IMAGE_RESOURCE_BLOCK_IPTC_DATA;
+            final int blockType = IptcConstants.IMAGE_RESOURCE_BLOCK_IPTC_DATA;
             final byte[] blockNameBytes = new byte[0];
             final IptcBlock newBlock = new IptcBlock(blockType, blockNameBytes,
                     newBlockBytes);
@@ -232,7 +233,7 @@ public class JpegIptcRewriter extends Jp
             final byte segmentBytes[] = new IptcParser()
                     .writePhotoshopApp13Segment(newData);
             final JFIFPieceSegment newSegment = new JFIFPieceSegment(
-                    JPEG_APP13_Marker, segmentBytes);
+                    JpegConstants.JPEG_APP13_Marker, segmentBytes);
 
             newPieces = insertAfterLastAppSegments(newPieces,
                     Arrays.asList(new JFIFPieceSegment[] { newSegment, }));

Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/PhotoshopApp13Data.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/PhotoshopApp13Data.java?rev=1539242&r1=1539241&r2=1539242&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/PhotoshopApp13Data.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/PhotoshopApp13Data.java Wed Nov  6 05:01:04 2013
@@ -20,7 +20,7 @@ package org.apache.commons.imaging.forma
 import java.util.ArrayList;
 import java.util.List;
 
-public class PhotoshopApp13Data implements IptcConstants {
+public class PhotoshopApp13Data {
     private final List<IptcRecord> records;
     private final List<IptcBlock> rawBlocks;
 

Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/JfifSegment.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/JfifSegment.java?rev=1539242&r1=1539241&r2=1539242&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/JfifSegment.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/JfifSegment.java Wed Nov  6 05:01:04 2013
@@ -23,7 +23,7 @@ import java.io.InputStream;
 import org.apache.commons.imaging.ImageReadException;
 import org.apache.commons.imaging.formats.jpeg.JpegConstants;
 
-public class JfifSegment extends Segment implements JpegConstants {
+public class JfifSegment extends Segment {
     public final int jfifMajorVersion;
     public final int jfifMinorVersion;
     public final int densityUnits;
@@ -48,9 +48,9 @@ public class JfifSegment extends Segment
             throws ImageReadException, IOException {
         super(marker, marker_length);
 
-        final byte signature[] = readBytes(is, JFIF0_SIGNATURE.size());
-        if (!JFIF0_SIGNATURE.equals(signature)
-                && !JFIF0_SIGNATURE_ALTERNATIVE.equals(signature)) {
+        final byte signature[] = readBytes(is, JpegConstants.JFIF0_SIGNATURE.size());
+        if (!JpegConstants.JFIF0_SIGNATURE.equals(signature)
+                && !JpegConstants.JFIF0_SIGNATURE_ALTERNATIVE.equals(signature)) {
             throw new ImageReadException(
                     "Not a Valid JPEG File: missing JFIF string");
         }

Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegRewriter.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegRewriter.java?rev=1539242&r1=1539241&r2=1539242&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegRewriter.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegRewriter.java Wed Nov  6 05:01:04 2013
@@ -35,7 +35,7 @@ import org.apache.commons.imaging.util.I
 /**
  * Interface for Exif write/update/remove functionality for Jpeg/JFIF images.
  */
-public class JpegRewriter extends BinaryFileParser implements JpegConstants {
+public class JpegRewriter extends BinaryFileParser {
     private static final ByteOrder JPEG_BYTE_ORDER = ByteOrder.NETWORK;
 
     /**
@@ -102,25 +102,25 @@ public class JpegRewriter extends Binary
         }
 
         public boolean isApp1Segment() {
-            return marker == JPEG_APP1_Marker;
+            return marker == JpegConstants.JPEG_APP1_Marker;
         }
 
         public boolean isAppSegment() {
-            return marker >= JPEG_APP0_Marker && marker <= JPEG_APP15_Marker;
+            return marker >= JpegConstants.JPEG_APP0_Marker && marker <= JpegConstants.JPEG_APP15_Marker;
         }
 
         public boolean isExifSegment() {
-            if (marker != JPEG_APP1_Marker) {
+            if (marker != JpegConstants.JPEG_APP1_Marker) {
                 return false;
             }
-            if (!startsWith(segmentData, EXIF_IDENTIFIER_CODE)) {
+            if (!startsWith(segmentData, JpegConstants.EXIF_IDENTIFIER_CODE)) {
                 return false;
             }
             return true;
         }
 
         public boolean isPhotoshopApp13Segment() {
-            if (marker != JPEG_APP13_Marker) {
+            if (marker != JpegConstants.JPEG_APP13_Marker) {
                 return false;
             }
             if (!new IptcParser().isPhotoshopJpegSegment(segmentData)) {
@@ -130,10 +130,10 @@ public class JpegRewriter extends Binary
         }
 
         public boolean isXmpSegment() {
-            if (marker != JPEG_APP1_Marker) {
+            if (marker != JpegConstants.JPEG_APP1_Marker) {
                 return false;
             }
-            if (!startsWith(segmentData, XMP_IDENTIFIER)) {
+            if (!startsWith(segmentData, JpegConstants.XMP_IDENTIFIER)) {
                 return false;
             }
             return true;
@@ -315,7 +315,7 @@ public class JpegRewriter extends Binary
             final List<? extends JFIFPiece> segments) throws IOException {
         boolean canThrow = false;
         try {
-            SOI.writeTo(os);
+            JpegConstants.SOI.writeTo(os);
     
             for (int i = 0; i < segments.size(); i++) {
                 final JFIFPiece piece = segments.get(i);

Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpParser.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpParser.java?rev=1539242&r1=1539241&r2=1539242&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpParser.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpParser.java Wed Nov  6 05:01:04 2013
@@ -24,14 +24,14 @@ import org.apache.commons.imaging.common
 import org.apache.commons.imaging.common.ByteOrder;
 import org.apache.commons.imaging.formats.jpeg.JpegConstants;
 
-public class JpegXmpParser extends BinaryFileParser implements JpegConstants {
+public class JpegXmpParser extends BinaryFileParser {
 
     public JpegXmpParser() {
         setByteOrder(ByteOrder.NETWORK);
     }
 
     public boolean isXmpJpegSegment(final byte segmentData[]) {
-        return BinaryFileParser.startsWith(segmentData, XMP_IDENTIFIER);
+        return BinaryFileParser.startsWith(segmentData, JpegConstants.XMP_IDENTIFIER);
     }
 
     public String parseXmpJpegSegment(final byte segmentData[])
@@ -39,7 +39,7 @@ public class JpegXmpParser extends Binar
         if (!isXmpJpegSegment(segmentData)) {
             throw new ImageReadException("Invalid JPEG XMP Segment.");
         }
-        final int index = XMP_IDENTIFIER.size();
+        final int index = JpegConstants.XMP_IDENTIFIER.size();
 
         try {
             // segment data is UTF-8 encoded xml.

Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriter.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriter.java?rev=1539242&r1=1539241&r2=1539242&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriter.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriter.java Wed Nov  6 05:01:04 2013
@@ -30,6 +30,7 @@ import org.apache.commons.imaging.common
 import org.apache.commons.imaging.common.bytesource.ByteSourceArray;
 import org.apache.commons.imaging.common.bytesource.ByteSourceFile;
 import org.apache.commons.imaging.common.bytesource.ByteSourceInputStream;
+import org.apache.commons.imaging.formats.jpeg.JpegConstants;
 
 /**
  * Interface for Exif write/update/remove functionality for Jpeg/JFIF images.
@@ -178,10 +179,10 @@ public class JpegXmpRewriter extends Jpe
         final byte xmpXmlBytes[] = xmpXml.getBytes("utf-8");
         int index = 0;
         while (index < xmpXmlBytes.length) {
-            final int segmentSize = Math.min(xmpXmlBytes.length, MAX_SEGMENT_SIZE);
+            final int segmentSize = Math.min(xmpXmlBytes.length, JpegConstants.MAX_SEGMENT_SIZE);
             final byte segmentData[] = writeXmpSegment(xmpXmlBytes, index,
                     segmentSize);
-            newPieces.add(new JFIFPieceSegment(JPEG_APP1_Marker, segmentData));
+            newPieces.add(new JFIFPieceSegment(JpegConstants.JPEG_APP1_Marker, segmentData));
             index += segmentSize;
         }
 
@@ -194,7 +195,7 @@ public class JpegXmpRewriter extends Jpe
             throws IOException {
         final ByteArrayOutputStream os = new ByteArrayOutputStream();
 
-        XMP_IDENTIFIER.writeTo(os);
+        JpegConstants.XMP_IDENTIFIER.writeTo(os);
         os.write(xmpXmlData, start, length);
 
         return os.toByteArray();

Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pcx/PcxConstants.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pcx/PcxConstants.java?rev=1539242&r1=1539241&r2=1539242&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pcx/PcxConstants.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pcx/PcxConstants.java Wed Nov  6 05:01:04 2013
@@ -14,9 +14,8 @@
  */
 package org.apache.commons.imaging.formats.pcx;
 
-import org.apache.commons.imaging.ImagingConstants;
 
-public interface PcxConstants extends ImagingConstants {
+public class PcxConstants {
     public static final String PARAM_KEY_PCX_COMPRESSION = "PCX_COMPRESSION";
     public static final int PCX_COMPRESSION_UNCOMPRESSED = 0;
     public static final int PCX_COMPRESSION_RLE = 1;

Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pcx/PcxImageParser.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pcx/PcxImageParser.java?rev=1539242&r1=1539241&r2=1539242&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pcx/PcxImageParser.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pcx/PcxImageParser.java Wed Nov  6 05:01:04 2013
@@ -49,7 +49,7 @@ import org.apache.commons.imaging.common
 import org.apache.commons.imaging.common.bytesource.ByteSource;
 import org.apache.commons.imaging.util.IoUtils;
 
-public class PcxImageParser extends ImageParser implements PcxConstants {
+public class PcxImageParser extends ImageParser {
     // ZSoft's official spec is at http://www.qzx.com/pc-gpe/pcx.txt
     // (among other places) but it's pretty thin. The fileformat.info document
     // at http://www.fileformat.info/format/pcx/egff.htm is a little better

Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pcx/PcxWriter.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pcx/PcxWriter.java?rev=1539242&r1=1539241&r2=1539242&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pcx/PcxWriter.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pcx/PcxWriter.java Wed Nov  6 05:01:04 2013
@@ -23,13 +23,14 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.commons.imaging.ImageWriteException;
+import org.apache.commons.imaging.ImagingConstants;
 import org.apache.commons.imaging.PixelDensity;
 import org.apache.commons.imaging.common.BinaryOutputStream;
 import org.apache.commons.imaging.common.ByteOrder;
 import org.apache.commons.imaging.palette.PaletteFactory;
 import org.apache.commons.imaging.palette.SimplePalette;
 
-public class PcxWriter implements PcxConstants {
+public class PcxWriter {
     private int encoding;
     private int bitDepth = -1;
     private PixelDensity pixelDensity = null;
@@ -39,29 +40,29 @@ public class PcxWriter implements PcxCon
         params = (params == null) ? new HashMap<String,Object>() : new HashMap<String,Object>(params);
 
         // clear format key.
-        if (params.containsKey(PARAM_KEY_FORMAT)) {
-            params.remove(PARAM_KEY_FORMAT);
+        if (params.containsKey(ImagingConstants.PARAM_KEY_FORMAT)) {
+            params.remove(ImagingConstants.PARAM_KEY_FORMAT);
         }
 
         // uncompressed PCX files are not even documented in ZSoft's spec,
         // let alone supported by most image viewers
         encoding = PcxImageParser.PcxHeader.ENCODING_RLE;
-        if (params.containsKey(PARAM_KEY_PCX_COMPRESSION)) {
-            final Object value = params.remove(PARAM_KEY_PCX_COMPRESSION);
+        if (params.containsKey(PcxConstants.PARAM_KEY_PCX_COMPRESSION)) {
+            final Object value = params.remove(PcxConstants.PARAM_KEY_PCX_COMPRESSION);
             if (value != null) {
                 if (!(value instanceof Number)) {
                     throw new ImageWriteException(
                             "Invalid compression parameter: " + value);
                 }
                 final int compression = ((Number) value).intValue();
-                if (compression == PCX_COMPRESSION_UNCOMPRESSED) {
+                if (compression == PcxConstants.PCX_COMPRESSION_UNCOMPRESSED) {
                     encoding = PcxImageParser.PcxHeader.ENCODING_UNCOMPRESSED;
                 }
             }
         }
 
-        if (params.containsKey(PARAM_KEY_PCX_BIT_DEPTH)) {
-            final Object value = params.remove(PARAM_KEY_PCX_BIT_DEPTH);
+        if (params.containsKey(PcxConstants.PARAM_KEY_PCX_BIT_DEPTH)) {
+            final Object value = params.remove(PcxConstants.PARAM_KEY_PCX_BIT_DEPTH);
             if (value != null) {
                 if (!(value instanceof Number)) {
                     throw new ImageWriteException(
@@ -71,8 +72,8 @@ public class PcxWriter implements PcxCon
             }
         }
 
-        if (params.containsKey(PARAM_KEY_PIXEL_DENSITY)) {
-            final Object value = params.remove(PARAM_KEY_PIXEL_DENSITY);
+        if (params.containsKey(ImagingConstants.PARAM_KEY_PIXEL_DENSITY)) {
+            final Object value = params.remove(ImagingConstants.PARAM_KEY_PIXEL_DENSITY);
             if (value != null) {
                 if (!(value instanceof PixelDensity)) {
                     throw new ImageWriteException(

Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/png/PngConstants.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/png/PngConstants.java?rev=1539242&r1=1539241&r2=1539242&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/png/PngConstants.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/png/PngConstants.java Wed Nov  6 05:01:04 2013
@@ -16,11 +16,10 @@
  */
 package org.apache.commons.imaging.formats.png;
 
-import org.apache.commons.imaging.ImagingConstants;
 import org.apache.commons.imaging.common.BinaryConstant;
 import org.apache.commons.imaging.common.BinaryFunctions;
 
-public interface PngConstants extends ImagingConstants {
+public class PngConstants {
 
     public static final int COMPRESSION_DEFLATE_INFLATE = 0;
 
@@ -135,7 +134,7 @@ public interface PngConstants extends Im
      * image.
      */
 
-    public final String XMP_KEYWORD = "XML:com.adobe.xmp";
+    public static final String XMP_KEYWORD = "XML:com.adobe.xmp";
 
     /**
      * Parameter key.

Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/png/PngImageParser.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/png/PngImageParser.java?rev=1539242&r1=1539241&r2=1539242&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/png/PngImageParser.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/png/PngImageParser.java Wed Nov  6 05:01:04 2013
@@ -63,7 +63,7 @@ import org.apache.commons.imaging.icc.Ic
 import org.apache.commons.imaging.util.IoUtils;
 import org.apache.commons.imaging.util.ParamMap;
 
-public class PngImageParser extends ImageParser implements PngConstants {
+public class PngImageParser extends ImageParser {
 
     public PngImageParser() {
         // setDebug(true);
@@ -184,23 +184,23 @@ public class PngImageParser extends Imag
             final int CRC = read4Bytes("CRC", is, "Not a Valid PNG File");
 
             if (keep) {
-                if (chunkType == iCCP) {
+                if (chunkType == PngConstants.iCCP) {
                     result.add(new PngChunkIccp(length, chunkType, CRC, bytes));
-                } else if (chunkType == tEXt) {
+                } else if (chunkType == PngConstants.tEXt) {
                     result.add(new PngChunkText(length, chunkType, CRC, bytes));
-                } else if (chunkType == zTXt) {
+                } else if (chunkType == PngConstants.zTXt) {
                     result.add(new PngChunkZtxt(length, chunkType, CRC, bytes));
-                } else if (chunkType == IHDR) {
+                } else if (chunkType == PngConstants.IHDR) {
                     result.add(new PngChunkIhdr(length, chunkType, CRC, bytes));
-                } else if (chunkType == PLTE) {
+                } else if (chunkType == PngConstants.PLTE) {
                     result.add(new PngChunkPlte(length, chunkType, CRC, bytes));
-                } else if (chunkType == pHYs) {
+                } else if (chunkType == PngConstants.pHYs) {
                     result.add(new PngChunkPhys(length, chunkType, CRC, bytes));
-                } else if (chunkType == IDAT) {
+                } else if (chunkType == PngConstants.IDAT) {
                     result.add(new PngChunkIdat(length, chunkType, CRC, bytes));
-                } else if (chunkType == gAMA) {
+                } else if (chunkType == PngConstants.gAMA) {
                     result.add(new PngChunkGama(length, chunkType, CRC, bytes));
-                } else if (chunkType == iTXt) {
+                } else if (chunkType == PngConstants.iTXt) {
                     result.add(new PngChunkItxt(length, chunkType, CRC, bytes));
                 } else { 
                     result.add(new PngChunk(length, chunkType, CRC, bytes));
@@ -211,7 +211,7 @@ public class PngImageParser extends Imag
                 }
             }
 
-            if (chunkType == IEND) {
+            if (chunkType == PngConstants.IEND) {
                 break;
             }
 
@@ -223,7 +223,7 @@ public class PngImageParser extends Imag
 
     public void readSignature(final InputStream is) throws ImageReadException,
             IOException {
-        readAndVerifyBytes(is, PNG_Signature,
+        readAndVerifyBytes(is, PngConstants.PNG_Signature,
                 "Not a Valid PNG Segment: Incorrect Signature");
 
     }
@@ -248,7 +248,7 @@ public class PngImageParser extends Imag
     @Override
     public byte[] getICCProfileBytes(final ByteSource byteSource, final Map<String,Object> params)
             throws ImageReadException, IOException {
-        final List<PngChunk> chunks = readChunks(byteSource, new int[] { iCCP, },
+        final List<PngChunk> chunks = readChunks(byteSource, new int[] { PngConstants.iCCP, },
                 true);
 
         if ((chunks == null) || (chunks.size() < 1)) {
@@ -270,7 +270,7 @@ public class PngImageParser extends Imag
     @Override
     public Dimension getImageSize(final ByteSource byteSource, final Map<String,Object> params)
             throws ImageReadException, IOException {
-        final List<PngChunk> chunks = readChunks(byteSource, new int[] { IHDR, },
+        final List<PngChunk> chunks = readChunks(byteSource, new int[] { PngConstants.IHDR, },
                 true);
 
         if ((chunks == null) || (chunks.size() < 1)) {
@@ -299,7 +299,7 @@ public class PngImageParser extends Imag
     public IImageMetadata getMetadata(final ByteSource byteSource, final Map<String,Object> params)
             throws ImageReadException, IOException {
         final List<PngChunk> chunks = readChunks(byteSource,
-                new int[] { tEXt, zTXt, }, true);
+                new int[] { PngConstants.tEXt, PngConstants.zTXt, }, true);
 
         if ((chunks == null) || (chunks.size() < 1)) {
             return null;
@@ -346,15 +346,15 @@ public class PngImageParser extends Imag
         // 6 8,16 Each pixel is an R,G,B triple,
         // followed by an alpha sample.
         switch (colorType) {
-        case COLOR_TYPE_GREYSCALE:
+        case PngConstants.COLOR_TYPE_GREYSCALE:
             return true;
-        case COLOR_TYPE_TRUE_COLOR:
+        case PngConstants.COLOR_TYPE_TRUE_COLOR:
             return false;
-        case COLOR_TYPE_INDEXED_COLOR:
+        case PngConstants.COLOR_TYPE_INDEXED_COLOR:
             return false;
-        case COLOR_TYPE_GREYSCALE_WITH_ALPHA:
+        case PngConstants.COLOR_TYPE_GREYSCALE_WITH_ALPHA:
             return true;
-        case COLOR_TYPE_TRUE_COLOR_WITH_ALPHA:
+        case PngConstants.COLOR_TYPE_TRUE_COLOR_WITH_ALPHA:
             return false;
         }
 
@@ -392,15 +392,15 @@ public class PngImageParser extends Imag
         // 6 8,16 Each pixel is an R,G,B triple,
         // followed by an alpha sample.
         switch (colorType) {
-        case COLOR_TYPE_GREYSCALE:
+        case PngConstants.COLOR_TYPE_GREYSCALE:
             return 1;
-        case COLOR_TYPE_TRUE_COLOR:
+        case PngConstants.COLOR_TYPE_TRUE_COLOR:
             return 3;
-        case COLOR_TYPE_INDEXED_COLOR:
+        case PngConstants.COLOR_TYPE_INDEXED_COLOR:
             return 1; // is this accurate ? how may bits per index?
-        case COLOR_TYPE_GREYSCALE_WITH_ALPHA:
+        case PngConstants.COLOR_TYPE_GREYSCALE_WITH_ALPHA:
             return 2;
-        case COLOR_TYPE_TRUE_COLOR_WITH_ALPHA:
+        case PngConstants.COLOR_TYPE_TRUE_COLOR_WITH_ALPHA:
             return 4;
         }
 
@@ -423,15 +423,15 @@ public class PngImageParser extends Imag
 
     private boolean hasAlphaChannel(final int ColorType) throws ImageReadException {
         switch (ColorType) {
-        case COLOR_TYPE_GREYSCALE: // 1,2,4,8,16 Each pixel is a grayscale
+        case PngConstants.COLOR_TYPE_GREYSCALE: // 1,2,4,8,16 Each pixel is a grayscale
             // sample.
-        case COLOR_TYPE_TRUE_COLOR: // 8,16 Each pixel is an R,G,B triple.
-        case COLOR_TYPE_INDEXED_COLOR: // 1,2,4,8 Each pixel is a palette index;
+        case PngConstants.COLOR_TYPE_TRUE_COLOR: // 8,16 Each pixel is an R,G,B triple.
+        case PngConstants.COLOR_TYPE_INDEXED_COLOR: // 1,2,4,8 Each pixel is a palette index;
             return false;
-        case COLOR_TYPE_GREYSCALE_WITH_ALPHA: // 8,16 Each pixel is a grayscale
+        case PngConstants.COLOR_TYPE_GREYSCALE_WITH_ALPHA: // 8,16 Each pixel is a grayscale
             // sample,
             // followed by an alpha sample.
-        case COLOR_TYPE_TRUE_COLOR_WITH_ALPHA: // 8,16 Each pixel is an R,G,B
+        case PngConstants.COLOR_TYPE_TRUE_COLOR_WITH_ALPHA: // 8,16 Each pixel is an R,G,B
             // triple,
             // followed by an alpha sample.
             return true;
@@ -443,18 +443,18 @@ public class PngImageParser extends Imag
 
     private String getColorTypeDescription(final int ColorType) {
         switch (ColorType) {
-        case COLOR_TYPE_GREYSCALE: // 1,2,4,8,16 Each pixel is a grayscale
+        case PngConstants.COLOR_TYPE_GREYSCALE: // 1,2,4,8,16 Each pixel is a grayscale
             // sample.
             return "grayscale";
-        case COLOR_TYPE_TRUE_COLOR: // 8,16 Each pixel is an R,G,B triple.
+        case PngConstants.COLOR_TYPE_TRUE_COLOR: // 8,16 Each pixel is an R,G,B triple.
             return "rgb";
-        case COLOR_TYPE_INDEXED_COLOR: // 1,2,4,8 Each pixel is a palette index;
+        case PngConstants.COLOR_TYPE_INDEXED_COLOR: // 1,2,4,8 Each pixel is a palette index;
             return "indexed rgb";
-        case COLOR_TYPE_GREYSCALE_WITH_ALPHA: // 8,16 Each pixel is a grayscale
+        case PngConstants.COLOR_TYPE_GREYSCALE_WITH_ALPHA: // 8,16 Each pixel is a grayscale
             // sample,
             // followed by an alpha sample.
             return "grayscale w/ alpha";
-        case COLOR_TYPE_TRUE_COLOR_WITH_ALPHA: // 8,16 Each pixel is an R,G,B
+        case PngConstants.COLOR_TYPE_TRUE_COLOR_WITH_ALPHA: // 8,16 Each pixel is an R,G,B
             // triple,
             // followed by an alpha sample.
             return "RGB w/ alpha";
@@ -473,16 +473,16 @@ public class PngImageParser extends Imag
         // this.debugNumber("pngChunktRNS.Length", pngChunktRNS.Length);
 
         switch (ColorType) {
-        case COLOR_TYPE_GREYSCALE: // 1,2,4,8,16 Each pixel is a grayscale
+        case PngConstants.COLOR_TYPE_GREYSCALE: // 1,2,4,8,16 Each pixel is a grayscale
             // sample.
             return new TransparencyFilterGrayscale(pngChunktRNS.getBytes());
-        case COLOR_TYPE_TRUE_COLOR: // 8,16 Each pixel is an R,G,B triple.
+        case PngConstants.COLOR_TYPE_TRUE_COLOR: // 8,16 Each pixel is an R,G,B triple.
             return new TransparencyFilterTrueColor(pngChunktRNS.getBytes());
-        case COLOR_TYPE_INDEXED_COLOR: // 1,2,4,8 Each pixel is a palette index;
+        case PngConstants.COLOR_TYPE_INDEXED_COLOR: // 1,2,4,8 Each pixel is a palette index;
             return new TransparencyFilterIndexedColor(pngChunktRNS.getBytes());
-        case COLOR_TYPE_GREYSCALE_WITH_ALPHA: // 8,16 Each pixel is a grayscale
+        case PngConstants.COLOR_TYPE_GREYSCALE_WITH_ALPHA: // 8,16 Each pixel is a grayscale
             // sample,
-        case COLOR_TYPE_TRUE_COLOR_WITH_ALPHA: // 8,16 Each pixel is an R,G,B
+        case PngConstants.COLOR_TYPE_TRUE_COLOR_WITH_ALPHA: // 8,16 Each pixel is an R,G,B
             // triple,
         default:
             throw new ImageReadException(
@@ -494,8 +494,15 @@ public class PngImageParser extends Imag
     @Override
     public ImageInfo getImageInfo(final ByteSource byteSource, final Map<String,Object> params)
             throws ImageReadException, IOException {
-        final List<PngChunk> chunks = readChunks(byteSource, new int[] { IHDR, pHYs,
-                tEXt, zTXt, tRNS, PLTE, iTXt, }, false);
+        final List<PngChunk> chunks = readChunks(byteSource, new int[] {
+                PngConstants.IHDR,
+                PngConstants.pHYs,
+                PngConstants.tEXt,
+                PngConstants.zTXt,
+                PngConstants.tRNS,
+                PngConstants.PLTE,
+                PngConstants.iTXt,
+            }, false);
 
         // if(chunks!=null)
         // System.out.println("chunks: " + chunks.size());
@@ -504,7 +511,7 @@ public class PngImageParser extends Imag
             throw new ImageReadException("PNG: no chunks");
         }
 
-        final List<PngChunk> IHDRs = filterChunks(chunks, IHDR);
+        final List<PngChunk> IHDRs = filterChunks(chunks, PngConstants.IHDR);
         if (IHDRs.size() != 1) {
             throw new ImageReadException("PNG contains more than one Header");
         }
@@ -513,7 +520,7 @@ public class PngImageParser extends Imag
 
         boolean isTransparent = false;
 
-        final List<PngChunk> tRNSs = filterChunks(chunks, tRNS);
+        final List<PngChunk> tRNSs = filterChunks(chunks, PngConstants.tRNS);
         if (tRNSs.size() > 0) {
             isTransparent = true;
         } else {
@@ -524,7 +531,7 @@ public class PngImageParser extends Imag
 
         PngChunkPhys pngChunkpHYs = null;
 
-        final List<PngChunk> pHYss = filterChunks(chunks, pHYs);
+        final List<PngChunk> pHYss = filterChunks(chunks, PngConstants.pHYs);
         if (pHYss.size() > 1) {
             throw new ImageReadException("PNG contains more than one pHYs: "
                     + pHYss.size());
@@ -532,9 +539,9 @@ public class PngImageParser extends Imag
             pngChunkpHYs = (PngChunkPhys) pHYss.get(0);
         }
 
-        final List<PngChunk> tEXts = filterChunks(chunks, tEXt);
-        final List<PngChunk> zTXts = filterChunks(chunks, zTXt);
-        final List<PngChunk> iTXts = filterChunks(chunks, iTXt);
+        final List<PngChunk> tEXts = filterChunks(chunks, PngConstants.tEXt);
+        final List<PngChunk> zTXts = filterChunks(chunks, PngConstants.zTXt);
+        final List<PngChunk> iTXts = filterChunks(chunks, PngConstants.iTXt);
 
         final List<String> comments = new ArrayList<String>();
         final List<PngText> textChunks = new ArrayList<PngText>();
@@ -596,24 +603,24 @@ public class PngImageParser extends Imag
 
         boolean usesPalette = false;
 
-        final List<PngChunk> PLTEs = filterChunks(chunks, PLTE);
+        final List<PngChunk> PLTEs = filterChunks(chunks, PngConstants.PLTE);
         if (PLTEs.size() > 1) {
             usesPalette = true;
         }
 
         int ColorType;
         switch (pngChunkIHDR.colorType) {
-        case COLOR_TYPE_GREYSCALE: // 1,2,4,8,16 Each pixel is a grayscale
+        case PngConstants.COLOR_TYPE_GREYSCALE: // 1,2,4,8,16 Each pixel is a grayscale
             // sample.
-        case COLOR_TYPE_GREYSCALE_WITH_ALPHA: // 8,16 Each pixel is a
+        case PngConstants.COLOR_TYPE_GREYSCALE_WITH_ALPHA: // 8,16 Each pixel is a
             // grayscale sample,
             // followed by an alpha sample.
             ColorType = ImageInfo.COLOR_TYPE_GRAYSCALE;
             break;
-        case COLOR_TYPE_TRUE_COLOR: // 8,16 Each pixel is an R,G,B triple.
-        case COLOR_TYPE_INDEXED_COLOR: // 1,2,4,8 Each pixel is a palette
+        case PngConstants.COLOR_TYPE_TRUE_COLOR: // 8,16 Each pixel is an R,G,B triple.
+        case PngConstants.COLOR_TYPE_INDEXED_COLOR: // 1,2,4,8 Each pixel is a palette
             // index;
-        case COLOR_TYPE_TRUE_COLOR_WITH_ALPHA: // 8,16 Each pixel is an
+        case PngConstants.COLOR_TYPE_TRUE_COLOR_WITH_ALPHA: // 8,16 Each pixel is an
             // R,G,B triple,
             // followed by an alpha sample.
             ColorType = ImageInfo.COLOR_TYPE_RGB;
@@ -646,21 +653,28 @@ public class PngImageParser extends Imag
         // throw new ImageWriteException("Unknown parameter: " + firstKey);
         // }
 
-        final List<PngChunk> chunks = readChunks(byteSource, new int[] { IHDR, PLTE,
-                IDAT, tRNS, iCCP, gAMA, sRGB, }, false);
+        final List<PngChunk> chunks = readChunks(byteSource, new int[] {
+                PngConstants.IHDR,
+                PngConstants.PLTE,
+                PngConstants.IDAT,
+                PngConstants.tRNS,
+                PngConstants.iCCP,
+                PngConstants.gAMA,
+                PngConstants.sRGB,
+            }, false);
 
         if ((chunks == null) || (chunks.size() < 1)) {
             throw new ImageReadException("PNG: no chunks");
         }
 
-        final List<PngChunk> IHDRs = filterChunks(chunks, IHDR);
+        final List<PngChunk> IHDRs = filterChunks(chunks, PngConstants.IHDR);
         if (IHDRs.size() != 1) {
             throw new ImageReadException("PNG contains more than one Header");
         }
 
         final PngChunkIhdr pngChunkIHDR = (PngChunkIhdr) IHDRs.get(0);
 
-        final List<PngChunk> PLTEs = filterChunks(chunks, PLTE);
+        final List<PngChunk> PLTEs = filterChunks(chunks, PngConstants.PLTE);
         if (PLTEs.size() > 1) {
             throw new ImageReadException("PNG contains more than one Palette");
         }
@@ -672,7 +686,7 @@ public class PngImageParser extends Imag
 
         // -----
 
-        final List<PngChunk> IDATs = filterChunks(chunks, IDAT);
+        final List<PngChunk> IDATs = filterChunks(chunks, PngConstants.IDAT);
         if (IDATs.size() < 1) {
             throw new ImageReadException("PNG missing image data");
         }
@@ -691,7 +705,7 @@ public class PngImageParser extends Imag
 
         TransparencyFilter transparencyFilter = null;
 
-        final List<PngChunk> tRNSs = filterChunks(chunks, tRNS);
+        final List<PngChunk> tRNSs = filterChunks(chunks, PngConstants.tRNS);
         if (tRNSs.size() > 0) {
             final PngChunk pngChunktRNS = tRNSs.get(0);
             transparencyFilter = getTransparencyFilter(pngChunkIHDR.colorType,
@@ -701,9 +715,9 @@ public class PngImageParser extends Imag
         ICC_Profile icc_profile = null;
         GammaCorrection gammaCorrection = null;
         {
-            final List<PngChunk> sRGBs = filterChunks(chunks, sRGB);
-            final List<PngChunk> gAMAs = filterChunks(chunks, gAMA);
-            final List<PngChunk> iCCPs = filterChunks(chunks, iCCP);
+            final List<PngChunk> sRGBs = filterChunks(chunks, PngConstants.sRGB);
+            final List<PngChunk> gAMAs = filterChunks(chunks, PngConstants.gAMA);
+            final List<PngChunk> iCCPs = filterChunks(chunks, PngConstants.iCCP);
             if (sRGBs.size() > 1) {
                 throw new ImageReadException("PNG: unexpected sRGB chunk");
             }
@@ -767,8 +781,8 @@ public class PngImageParser extends Imag
 
             final int bitsPerPixel = bitsPerSample * samplesPerPixel;
 
-            final boolean hasAlpha = colorType == COLOR_TYPE_GREYSCALE_WITH_ALPHA
-                    || colorType == COLOR_TYPE_TRUE_COLOR_WITH_ALPHA
+            final boolean hasAlpha = colorType == PngConstants.COLOR_TYPE_GREYSCALE_WITH_ALPHA
+                    || colorType == PngConstants.COLOR_TYPE_TRUE_COLOR_WITH_ALPHA
                     || transparencyFilter != null;
 
             BufferedImage result;
@@ -830,7 +844,7 @@ public class PngImageParser extends Imag
         imageInfo.toString(pw, "");
 
         final List<PngChunk> chunks = readChunks(byteSource, null, false);
-        final List<PngChunk> IHDRs = filterChunks(chunks, IHDR);
+        final List<PngChunk> IHDRs = filterChunks(chunks, PngConstants.IHDR);
         if (IHDRs.size() != 1) {
             if (getDebug()) {
                 System.out.println("PNG contains more than one Header");
@@ -879,7 +893,7 @@ public class PngImageParser extends Imag
     public String getXmpXml(final ByteSource byteSource, final Map<String,Object> params)
             throws ImageReadException, IOException {
 
-        final List<PngChunk> chunks = readChunks(byteSource, new int[] { iTXt, },
+        final List<PngChunk> chunks = readChunks(byteSource, new int[] { PngConstants.iTXt, },
                 false);
 
         if ((chunks == null) || (chunks.size() < 1)) {
@@ -889,7 +903,7 @@ public class PngImageParser extends Imag
         final List<PngChunkItxt> xmpChunks = new ArrayList<PngChunkItxt>();
         for (int i = 0; i < chunks.size(); i++) {
             final PngChunkItxt chunk = (PngChunkItxt) chunks.get(i);
-            if (!chunk.getKeyword().equals(XMP_KEYWORD)) {
+            if (!chunk.getKeyword().equals(PngConstants.XMP_KEYWORD)) {
                 continue;
             }
             xmpChunks.add(chunk);