You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by da...@apache.org on 2013/10/22 06:52:07 UTC
svn commit: r1534492 - in /commons/proper/imaging/trunk/src: changes/
main/java/org/apache/commons/imaging/formats/jpeg/
main/java/org/apache/commons/imaging/formats/jpeg/segments/
Author: damjan
Date: Tue Oct 22 04:52:07 2013
New Revision: 1534492
URL: http://svn.apache.org/r1534492
Log:
Encapsulate GenericSegment's byte array.
Jira issue key: IMAGING-116
Modified:
commons/proper/imaging/trunk/src/changes/changes.xml
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/segments/App13Segment.java
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App14Segment.java
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App2Segment.java
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/ComSegment.java
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/GenericSegment.java
Modified: commons/proper/imaging/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/changes/changes.xml?rev=1534492&r1=1534491&r2=1534492&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/changes/changes.xml (original)
+++ commons/proper/imaging/trunk/src/changes/changes.xml Tue Oct 22 04:52:07 2013
@@ -46,6 +46,9 @@ The <action> type attribute can be add,u
<body>
<release version="1.0" date="TBA" description="TBA">
+ <action issue="IMAGING-116" dev="damjan" type="fix">
+ GenericSegment.bytes - public mutable array.
+ </action>
<action issue="IMAGING-118" dev="damjan" type="fix">
interface RgbeConstants contains mutable array.
</action>
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=1534492&r1=1534491&r2=1534492&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 Tue Oct 22 04:52:07 2013
@@ -321,7 +321,7 @@ public class JpegImageParser extends Ima
}
public static boolean isExifAPP1Segment(final GenericSegment segment) {
- return startsWith(segment.bytes, EXIF_IDENTIFIER_CODE);
+ return startsWith(segment.getSegmentData(), EXIF_IDENTIFIER_CODE);
}
private List<Segment> filterAPP1Segments(final List<Segment> v) {
@@ -384,7 +384,7 @@ public class JpegImageParser extends Ima
}
final GenericSegment segment = (GenericSegment) exifSegments.get(0);
- final byte bytes[] = segment.bytes;
+ final byte bytes[] = segment.getSegmentData();
// byte head[] = readBytearray("exif head", bytes, 0, 6);
//
Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App13Segment.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App13Segment.java?rev=1534492&r1=1534491&r2=1534492&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App13Segment.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App13Segment.java Tue Oct 22 04:52:07 2013
@@ -59,7 +59,7 @@ public class App13Segment extends AppnSe
}
public boolean isPhotoshopJpegSegment() {
- return new IptcParser().isPhotoshopJpegSegment(bytes);
+ return new IptcParser().isPhotoshopJpegSegment(getSegmentData());
}
public PhotoshopApp13Data parsePhotoshopSegment(final Map<String,Object> params)
@@ -73,6 +73,6 @@ public class App13Segment extends AppnSe
return null;
}
- return new IptcParser().parsePhotoshopSegment(bytes, params);
+ return new IptcParser().parsePhotoshopSegment(getSegmentData(), params);
}
}
Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App14Segment.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App14Segment.java?rev=1534492&r1=1534491&r2=1534492&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App14Segment.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App14Segment.java Tue Oct 22 04:52:07 2013
@@ -53,10 +53,10 @@ public class App14Segment extends AppnSe
}
public boolean isAdobeJpegSegment() {
- return BinaryFileParser.startsWith(bytes, adobePrefix);
+ return BinaryFileParser.startsWith(getSegmentData(), adobePrefix);
}
public int getAdobeColorTransform() {
- return 0xff & bytes[11];
+ return 0xff & segmentData[11];
}
}
Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App2Segment.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App2Segment.java?rev=1534492&r1=1534491&r2=1534492&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App2Segment.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/App2Segment.java Tue Oct 22 04:52:07 2013
@@ -37,9 +37,9 @@ public class App2Segment extends AppnSeg
throws ImageReadException, IOException {
super(marker, marker_length, is2);
- if (BinaryFileParser.startsWith(bytes,
+ if (BinaryFileParser.startsWith(getSegmentData(),
JpegImageParser.icc_profile_label)) {
- final InputStream is = new ByteArrayInputStream(bytes);
+ final InputStream is = new ByteArrayInputStream(getSegmentData());
readAndVerifyBytes(is, JpegImageParser.icc_profile_label,
"Not a Valid App2 Segment: missing ICC Profile label");
Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/ComSegment.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/ComSegment.java?rev=1534492&r1=1534491&r2=1534492&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/ComSegment.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/ComSegment.java Tue Oct 22 04:52:07 2013
@@ -16,43 +16,33 @@
*/
package org.apache.commons.imaging.formats.jpeg.segments;
-import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
-public class ComSegment extends Segment {
- private final byte[] comment;
-
+public class ComSegment extends GenericSegment {
public ComSegment(final int marker, final byte segmentData[]) throws IOException {
- this(marker, segmentData.length, new ByteArrayInputStream(segmentData));
+ super(marker, segmentData);
}
public ComSegment(final int marker, final int marker_length, final InputStream is)
throws IOException {
- super(marker, marker_length);
-
- if (getDebug()) {
- System.out.println("ComSegment marker_length: " + marker_length);
- }
-
- comment = readBytes("Comment", is, marker_length,
- "Error reading JPEG comment");
-
- if (getDebug()) {
- System.out.println("");
- }
+ super(marker, marker_length, is);
}
+ /**
+ * Returns a copy of the comment.
+ * @return a copy of the comment's bytes
+ */
public byte[] getComment() {
- return comment;
+ return getSegmentData();
}
@Override
public String getDescription() {
String commentString = "";
try {
- commentString = new String(comment, "UTF-8");
+ commentString = new String(segmentData, "UTF-8");
} catch (final UnsupportedEncodingException cannotHappen) {
}
return "COM (" + commentString + ")";
Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/GenericSegment.java
URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/GenericSegment.java?rev=1534492&r1=1534491&r2=1534492&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/GenericSegment.java (original)
+++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/segments/GenericSegment.java Tue Oct 22 04:52:07 2013
@@ -21,20 +21,20 @@ import java.io.InputStream;
import java.io.PrintWriter;
public abstract class GenericSegment extends Segment {
- public final byte bytes[];
+ protected final byte segmentData[];
public GenericSegment(final int marker, final int marker_length, final InputStream is)
throws IOException {
super(marker, marker_length);
- bytes = readBytes("Segment Data", is, marker_length,
+ segmentData = readBytes("Segment Data", is, marker_length,
"Invalid Segment: insufficient data");
}
public GenericSegment(final int marker, final byte bytes[]) {
super(marker, bytes.length);
- this.bytes = bytes;
+ this.segmentData = bytes;
}
@Override
@@ -43,11 +43,21 @@ public abstract class GenericSegment ext
}
public void dump(final PrintWriter pw, final int start) {
- for (int i = 0; (i < 50) && ((i + start) < bytes.length); i++) {
- debugNumber(pw, "\t" + (i + start), bytes[i + start]);
+ for (int i = 0; (i < 50) && ((i + start) < segmentData.length); i++) {
+ debugNumber(pw, "\t" + (i + start), segmentData[i + start]);
}
}
+ /**
+ * Returns a copy of the segment's contents,
+ * excluding the marker and length bytes at
+ * the beginning.
+ * @return the segment's contents
+ */
+ public byte[] getSegmentData() {
+ return segmentData.clone();
+ }
+
// public String getDescription()
// {
// return "Unknown";