svn commit: r1236071 - /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java
Author: damjan Date: Thu Jan 26 08:40:20 2012 New Revision: 1236071 URL: http://svn.apache.org/viewvc?rev=1236071view=rev Log: rowsPerStrip is meant to be a 32 bit unsigned integer, since we store it in an int, and real-world TIFF files use the value 2^32 - 1, it needs to be promoted to a long when calculating tile height with it. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java?rev=1236071r1=1236070r2=1236071view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java Thu Jan 26 08:40:20 2012 @@ -85,17 +85,18 @@ public final class DataReaderStrips exte { for (int strip = 0; strip imageData.strips.length; strip++) { -int rowsRemaining = height - (strip * rowsPerStrip); -int rowsInThisStrip = Math.min(rowsRemaining, rowsPerStrip); -int pixelsPerStrip = rowsInThisStrip * width; -int bytesPerStrip = ((pixelsPerStrip * bitsPerPixel) + 7) / 8; +long rowsPerStripLong = 0xL rowsPerStrip; +long rowsRemaining = height - (strip * rowsPerStripLong); +long rowsInThisStrip = Math.min(rowsRemaining, rowsPerStripLong); +long pixelsPerStrip = rowsInThisStrip * width; +long bytesPerStrip = ((pixelsPerStrip * bitsPerPixel) + 7) / 8; byte compressed[] = imageData.strips[strip].data; byte decompressed[] = decompress(compressed, compression, -bytesPerStrip, width, rowsInThisStrip); +(int)bytesPerStrip, width, (int)rowsInThisStrip); -interpretStrip(bi, decompressed, pixelsPerStrip); +interpretStrip(bi, decompressed, (int)pixelsPerStrip); } }
svn commit: r1236072 - /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java
Author: damjan Date: Thu Jan 26 08:41:47 2012 New Revision: 1236072 URL: http://svn.apache.org/viewvc?rev=1236072view=rev Log: Deal with TIFF files with FillOrder=2. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java?rev=1236072r1=1236071r2=1236072view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java Thu Jan 26 08:41:47 2012 @@ -109,6 +109,21 @@ public abstract class DataReader impleme protected byte[] decompress(byte compressed[], int compression, int expected_size, int tileWidth, int tileHeight) throws ImageReadException, IOException { +TiffField fillOrderField = directory.findField(TIFF_TAG_FILL_ORDER); +int fillOrder = 1; +if (fillOrderField != null) { +fillOrder = fillOrderField.getIntValue(); +} +if (fillOrder == 1) { +// good +} else if (fillOrder == 2) { +for (int i = 0; i compressed.length; i++) { +compressed[i] = (byte) (Integer.reverse(0xff compressed[i]) 24); +} +} else { +throw new ImageReadException(TIFF FillOrder= + fillOrder + is invalid); +} + switch (compression) { case TIFF_COMPRESSION_UNCOMPRESSED : // None;
svn commit: r1236225 - /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java
Author: damjan Date: Thu Jan 26 15:07:49 2012 New Revision: 1236225 URL: http://svn.apache.org/viewvc?rev=1236225view=rev Log: Fix the GIF BitsPerPixel formula in GifImageParser's getImageInfo(). Jira issue key: SANSELAN-62 Submitted by: Piyush Kapoor pkapoor at adobe dot com Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java?rev=1236225r1=1236224r2=1236225view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java Thu Jan 26 15:07:49 2012 @@ -600,7 +600,7 @@ public class GifImageParser extends Imag Comments = getComments(blocks.blocks); -int BitsPerPixel = (bhi.colorResolution + 1) * 3; +int BitsPerPixel = (bhi.colorResolution + 1); ImageFormat Format = ImageFormat.IMAGE_FORMAT_GIF; String FormatName = GIF Graphics Interchange Format; String MimeType = image/gif; @@ -1182,4 +1182,4 @@ public class GifImageParser extends Imag } } -} \ No newline at end of file +}
svn commit: r1240468 - in /commons/proper/sanselan/trunk/src: main/java/org/apache/commons/sanselan/common/itu_t4/ main/java/org/apache/commons/sanselan/formats/jpeg/ main/java/org/apache/commons/sans
Author: damjan Date: Sat Feb 4 09:21:00 2012 New Revision: 1240468 URL: http://svn.apache.org/viewvc?rev=1240468view=rev Log: API immutability changes and Java 1.5 updates. Deleted the unused legacy IptcConstants.IPTC_PREFIX array (= IPTC_RECORD_TAG_MARKER + IPTC_APPLICATION_2_RECORD_NUMBER). Converted IptcConstants.IPTC_TYPE_* to an enum. Made some collections and classes generic. Similar changes will be applied to the whole tree, I am just starting here. Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcTypes.java (with props) Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/itu_t4/HuffmanTree.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegPhotoshopMetadata.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcRecord.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcType.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcTypeLookup.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/JpegIptcRewriter.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/PhotoshopApp13Data.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcDumpTest.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcUpdateTest.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/itu_t4/HuffmanTree.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/itu_t4/HuffmanTree.java?rev=1240468r1=1240467r2=1240468view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/itu_t4/HuffmanTree.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/itu_t4/HuffmanTree.java Sat Feb 4 09:21:00 2012 @@ -26,7 +26,7 @@ import org.apache.commons.sanselan.commo * A Huffman tree implemented as 1 array for high locality of reference. */ class HuffmanTree { -private static class Node { +private final static class Node { boolean isEmpty = true; Object value = null; } Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegPhotoshopMetadata.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegPhotoshopMetadata.java?rev=1240468r1=1240467r2=1240468view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegPhotoshopMetadata.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegPhotoshopMetadata.java Sat Feb 4 09:21:00 2012 @@ -22,6 +22,7 @@ import java.util.List; import org.apache.commons.sanselan.common.ImageMetadata; import org.apache.commons.sanselan.formats.jpeg.iptc.IptcConstants; import org.apache.commons.sanselan.formats.jpeg.iptc.IptcRecord; +import org.apache.commons.sanselan.formats.jpeg.iptc.IptcTypes; import org.apache.commons.sanselan.formats.jpeg.iptc.PhotoshopApp13Data; import org.apache.commons.sanselan.util.Debug; @@ -35,12 +36,12 @@ public class JpegPhotoshopMetadata exten { this.photoshopApp13Data = photoshopApp13Data; -List records = photoshopApp13Data.getRecords(); +ListIptcRecord records = photoshopApp13Data.getRecords(); Collections.sort(records, IptcRecord.COMPARATOR); for (int j = 0; j records.size(); j++) { IptcRecord element = (IptcRecord) records.get(j); -if (element.iptcType.type != IPTC_TYPE_RECORD_VERSION.type) +if (element.iptcType != IptcTypes.RECORD_VERSION) add(element.getIptcTypeName(), element.getValue()); } } Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcConstants.java?rev=1240468r1=1240467r2=1240468view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats
svn commit: r1240483 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg: iptc/JpegIptcRewriter.java xmp/JpegRewriter.java
Author: damjan Date: Sat Feb 4 10:34:46 2012 New Revision: 1240483 URL: http://svn.apache.org/viewvc?rev=1240483view=rev Log: More conversion to generic types for IPTC classes. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/JpegIptcRewriter.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegRewriter.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/JpegIptcRewriter.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/JpegIptcRewriter.java?rev=1240483r1=1240482r2=1240483view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/JpegIptcRewriter.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/JpegIptcRewriter.java Sat Feb 4 10:34:46 2012 @@ -117,13 +117,13 @@ public class JpegIptcRewriter extends Jp throws ImageReadException, IOException, ImageWriteException { JFIFPieces jfifPieces = analyzeJFIF(byteSource); -List oldPieces = jfifPieces.pieces; -List photoshopApp13Segments = findPhotoshopApp13Segments(oldPieces); +ListJFIFPiece oldPieces = jfifPieces.pieces; +ListJFIFPiece photoshopApp13Segments = findPhotoshopApp13Segments(oldPieces); if (photoshopApp13Segments.size() 1) throw new ImageReadException( Image contains more than one Photoshop App13 segment.); -List newPieces = removePhotoshopApp13Segments(oldPieces); +ListJFIFPiece newPieces = removePhotoshopApp13Segments(oldPieces); if (photoshopApp13Segments.size() == 1) { JFIFPieceSegment oldSegment = (JFIFPieceSegment) photoshopApp13Segments @@ -220,17 +220,17 @@ public class JpegIptcRewriter extends Jp ImageWriteException { JFIFPieces jfifPieces = analyzeJFIF(byteSource); -List oldPieces = jfifPieces.pieces; -List photoshopApp13Segments = findPhotoshopApp13Segments(oldPieces); +ListJFIFPiece oldPieces = jfifPieces.pieces; +ListJFIFPiece photoshopApp13Segments = findPhotoshopApp13Segments(oldPieces); if (photoshopApp13Segments.size() 1) throw new ImageReadException( Image contains more than one Photoshop App13 segment.); -List newPieces = removePhotoshopApp13Segments(oldPieces); +ListJFIFPiece newPieces = removePhotoshopApp13Segments(oldPieces); { // discard old iptc blocks. -List newBlocks = newData.getNonIptcBlocks(); +ListIptcBlock newBlocks = newData.getNonIptcBlocks(); byte[] newBlockBytes = new IptcParser().writeIPTCBlock(newData .getRecords()); Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegRewriter.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegRewriter.java?rev=1240483r1=1240482r2=1240483view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegRewriter.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegRewriter.java Sat Feb 4 10:34:46 2012 @@ -52,10 +52,10 @@ public class JpegRewriter extends Binary protected static class JFIFPieces { -public final List pieces; +public final ListJFIFPiece pieces; public final ListJFIFPiece segmentPieces; -public JFIFPieces(final List pieces, final ListJFIFPiece segmentPieces) +public JFIFPieces(final ListJFIFPiece pieces, final ListJFIFPiece segmentPieces) { this.pieces = pieces; this.segmentPieces = segmentPieces; @@ -171,7 +171,7 @@ public class JpegRewriter extends Binary throws ImageReadException, IOException // , ImageWriteException { -final List pieces = new ArrayList(); +final ListJFIFPiece pieces = new ArrayListJFIFPiece(); final ListJFIFPiece segmentPieces = new ArrayListJFIFPiece(); JpegUtils.Visitor visitor = new JpegUtils.Visitor() { @@ -232,39 +232,41 @@ public class JpegRewriter extends Binary } }; -protected List removeXmpSegments(List segments) +protected ListJFIFPiece removeXmpSegments(List? extends JFIFPiece segments) { return filterSegments(segments, XMP_SEGMENT_FILTER); } -protected List removePhotoshopApp13Segments(List segments) +protected ListJFIFPiece
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/JpegXmpRewrit
Author: damjan Date: Sat Feb 4 13:50:39 2012 New Revision: 1240502 URL: http://svn.apache.org/viewvc?rev=1240502view=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=1240502r1=1240501r2=1240502view=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 ListSegment readSegments(ByteSource byteSource, final int markers[], final boolean returnAfterFirst, boolean readEverything) throws ImageReadException, IOException { -final List result = new ArrayList(); +final ListSegment result = new ArrayListSegment(); 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(ListApp2Segment 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(ListApp2Segment 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? extends Segment 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 ListSegment 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, +ListSegment segments = readSegments(byteSource, new int[] { JPEG_APP2_Marker, }, false); +ListApp2Segment filtered = new ArrayListApp2Segment(); 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 ListSegment filterAPP1Segments(ListSegment v) { -List result = new ArrayList(); +ListSegment result = new ArrayListSegment(); for (int i = 0; i v.size(); i
svn commit: r1240671 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan: formats/jpeg/ formats/jpeg/exif/ formats/jpeg/iptc/ formats/jpeg/xmp/ formats/png/ formats/tiff/ for
Author: damjan Date: Sun Feb 5 07:47:22 2012 New Revision: 1240671 URL: http://svn.apache.org/viewvc?rev=1240671view=rev Log: Converted most collections to use generics, converted all Comparable and Comparator instances to use generics, and dropped most casts. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegImageMetadata.java 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/iptc/IptcParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegRewriter.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/PngWriter.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffContents.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffDirectory.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffElement.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterLossless.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterLossy.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputDirectory.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputSet.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/palette/ColorSpaceSubset.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/util/Debug.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegImageMetadata.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegImageMetadata.java?rev=1240671r1=1240670r2=1240671view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegImageMetadata.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegImageMetadata.java Sun Feb 5 07:47:22 2012 @@ -93,7 +93,7 @@ public class JpegImageMetadata implement * @throws IOException */ public byte[] getEXIFThumbnailData() throws ImageReadException, IOException { -List dirs = exif.getDirectories(); +List? extends IImageMetadataItem dirs = exif.getDirectories(); for (int i = 0; i dirs.size(); i++) { TiffImageMetadata.Directory dir = (TiffImageMetadata.Directory) dirs .get(i); @@ -126,7 +126,7 @@ public class JpegImageMetadata implement return null; } -List dirs = exif.getDirectories(); +List? extends IImageMetadataItem dirs = exif.getDirectories(); for (int i = 0; i dirs.size(); i++) { TiffImageMetadata.Directory dir = (TiffImageMetadata.Directory) dirs .get(i); @@ -151,7 +151,7 @@ public class JpegImageMetadata implement } public TiffImageData getRawImageData() { -List dirs = exif.getDirectories(); +List? extends IImageMetadataItem dirs = exif.getDirectories(); for (int i = 0; i dirs.size(); i++) { TiffImageMetadata.Directory dir = (TiffImageMetadata.Directory) dirs .get(i); @@ -164,8 +164,8 @@ public class JpegImageMetadata implement return null; } -public List getItems() { -ListObject result = new ArrayListObject(); +public ListIImageMetadataItem getItems() { +ListIImageMetadataItem result = new ArrayListIImageMetadataItem(); if (null != exif) result.addAll(exif.getItems()); 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=1240671r1=1240670r2=1240671view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg
svn commit: r1240761 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan: formats/jpeg/ icc/
Author: damjan Date: Sun Feb 5 16:22:25 2012 New Revision: 1240761 URL: http://svn.apache.org/viewvc?rev=1240761view=rev Log: Hid formats.jpeg.JpegImageParser.AcceptedExtensions and converted icc classes to enums. Jira issue key: SANSELAN-42 Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/icc/IccTagDataTypes.java (with props) commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/icc/IccTagTypes.java (with props) 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/icc/IccConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/icc/IccProfileParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/icc/IccTag.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/icc/IccTagDataType.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/icc/IccTagType.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=1240761r1=1240760r2=1240761view=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 Sun Feb 5 16:22:25 2012 @@ -82,11 +82,11 @@ public class JpegImageParser extends Ima private static final String DEFAULT_EXTENSION = .jpg; -public static final String AcceptedExtensions[] = { .jpg, .jpeg, }; +private static final String ACCEPTED_EXTENSIONS[] = { .jpg, .jpeg, }; protected String[] getAcceptedExtensions() { -return AcceptedExtensions; +return ACCEPTED_EXTENSIONS; } public final BufferedImage getBufferedImage(ByteSource byteSource, Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/icc/IccConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/icc/IccConstants.java?rev=1240761r1=1240760r2=1240761view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/icc/IccConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/icc/IccConstants.java Sun Feb 5 16:22:25 2012 @@ -16,12 +16,6 @@ */ package org.apache.commons.sanselan.icc; -import java.io.ByteArrayInputStream; -import java.io.IOException; - -import org.apache.commons.sanselan.ImageReadException; -import org.apache.commons.sanselan.common.BinaryConstants; -import org.apache.commons.sanselan.common.BinaryInputStream; public interface IccConstants { @@ -29,424 +23,4 @@ public interface IccConstants | ((0xff 'C') 8) | ((0xff ' ') 0)); public final static int sRGB = (((0xff 's') 24) | ((0xff 'R') 16) | ((0xff 'G') 8) | ((0xff 'B') 0)); - -public static final IccTagDataType descType = new IccTagDataType( -descType, 0x64657363) -{ -public void dump(String prefix, byte bytes[]) -throws ImageReadException, IOException -{ -BinaryInputStream bis = new BinaryInputStream( -new ByteArrayInputStream(bytes), -BinaryConstants.BYTE_ORDER_NETWORK); -bis.read4Bytes(type_signature, ICC: corrupt tag data); - -//bis.setDebug(true); -bis.read4Bytes(ignore, ICC: corrupt tag data); -int string_length = bis.read4Bytes(string_length, -ICC: corrupt tag data); - -//bis.readByteArray(ignore, bytes.length -12, none); -String s = new String(bytes, 12, string_length - 1); -System.out.println(prefix + s: ' + s + '); -} - -}; - -public static final IccTagDataType dataType = new IccTagDataType( -dataType, 0x64617461) -{ -public void dump(String prefix, byte bytes[]) -throws ImageReadException, IOException -{ -BinaryInputStream bis = new BinaryInputStream( -new ByteArrayInputStream(bytes), -BinaryConstants.BYTE_ORDER_NETWORK); -bis.read4Bytes(type_signature, ICC: corrupt tag data); -} - -}; - -public static final IccTagDataType multiLocalizedUnicodeType = new IccTagDataType( -multiLocalizedUnicodeType, (0x6D6C7563)) -{ -public void dump(String
svn commit: r1240779 - /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/ScanExpediterInterlaced.java
Author: damjan Date: Sun Feb 5 19:24:56 2012 New Revision: 1240779 URL: http://svn.apache.org/viewvc?rev=1240779view=rev Log: Make some internal PNG arrays private. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/ScanExpediterInterlaced.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/ScanExpediterInterlaced.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/ScanExpediterInterlaced.java?rev=1240779r1=1240778r2=1240779view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/ScanExpediterInterlaced.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/ScanExpediterInterlaced.java Sun Feb 5 19:24:56 2012 @@ -54,22 +54,22 @@ public class ScanExpediterInterlaced ext } -public static final int Starting_Row[] = { +private static final int Starting_Row[] = { 0, 0, 4, 0, 2, 0, 1 }; -public static final int Starting_Col[] = { +private static final int Starting_Col[] = { 0, 4, 0, 2, 0, 1, 0 }; -public static final int Row_Increment[] = { +private static final int Row_Increment[] = { 8, 8, 8, 4, 4, 2, 2 }; -public static final int Col_Increment[] = { +private static final int Col_Increment[] = { 8, 8, 4, 4, 2, 2, 1 }; -public static final int Block_Height[] = { +private static final int Block_Height[] = { 8, 8, 4, 4, 2, 2, 1 }; -public static final int Block_Width[] = { +private static final int Block_Width[] = { 8, 4, 4, 2, 2, 1, 1 };
svn commit: r1241093 - in /commons/proper/sanselan/trunk/src: main/java/org/apache/commons/sanselan/formats/tiff/ main/java/org/apache/commons/sanselan/formats/tiff/constants/ main/java/org/apache/com
Author: damjan Date: Mon Feb 6 17:40:25 2012 New Revision: 1241093 URL: http://svn.apache.org/viewvc?rev=1241093view=rev Log: Converted GpsTagConstants to an enum. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GpsTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputSet.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/examples/MetadataExample.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/TextFieldTest.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java?rev=1241093r1=1241092r2=1241093view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java Mon Feb 6 17:40:25 2012 @@ -28,6 +28,7 @@ import java.util.Map; import org.apache.commons.sanselan.ImageReadException; import org.apache.commons.sanselan.common.bytesource.ByteSource; +import org.apache.commons.sanselan.formats.tiff.constants.GpsTagConstants; import org.apache.commons.sanselan.formats.tiff.constants.TagInfo; import org.apache.commons.sanselan.formats.tiff.constants.TiffConstants; import org.apache.commons.sanselan.formats.tiff.constants.TiffTagConstants; @@ -610,7 +611,7 @@ public class TiffField implements TiffCo return map; } -private static final MapObject, ListTagInfo GPS_TAG_MAP = makeTagMap(ALL_GPS_TAGS, false, +private static final MapObject, ListTagInfo GPS_TAG_MAP = makeTagMap(GpsTagConstants.ALL_GPS_TAGS, false, GPS); private static final MapObject, ListTagInfo TIFF_TAG_MAP = makeTagMap(TiffTagConstants.ALL_TIFF_TAGS, false, TIFF); Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java?rev=1241093r1=1241092r2=1241093view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java Mon Feb 6 17:40:25 2012 @@ -28,6 +28,7 @@ import org.apache.commons.sanselan.Image import org.apache.commons.sanselan.common.ImageMetadata; import org.apache.commons.sanselan.common.RationalNumber; import org.apache.commons.sanselan.formats.tiff.constants.AllTagConstants; +import org.apache.commons.sanselan.formats.tiff.constants.GpsTagConstants; import org.apache.commons.sanselan.formats.tiff.constants.TagInfo; import org.apache.commons.sanselan.formats.tiff.constants.TiffConstants; import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryConstants; @@ -339,13 +340,13 @@ public class TiffImageMetadata extends I // more specific example of how to access GPS values. TiffField latitudeRefField = gpsDirectory -.findField(TiffConstants.GPS_TAG_GPS_LATITUDE_REF); +.findField(GpsTagConstants.GPS_LATITUDE_REF.tagInfo); TiffField latitudeField = gpsDirectory -.findField(TiffConstants.GPS_TAG_GPS_LATITUDE); +.findField(GpsTagConstants.GPS_LATITUDE.tagInfo); TiffField longitudeRefField = gpsDirectory -.findField(TiffConstants.GPS_TAG_GPS_LONGITUDE_REF); +.findField(GpsTagConstants.GPS_LONGITUDE_REF.tagInfo); TiffField longitudeField = gpsDirectory -.findField(TiffConstants.GPS_TAG_GPS_LONGITUDE); +.findField(GpsTagConstants.GPS_LONGITUDE.tagInfo); if (latitudeRefField == null || latitudeField == null || longitudeRefField == null || longitudeField == null) Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java?rev
svn commit: r1241131 [1/3] - in /commons/proper/sanselan/trunk/src: main/java/org/apache/commons/sanselan/formats/tiff/ main/java/org/apache/commons/sanselan/formats/tiff/constants/ main/java/org/apac
Author: damjan Date: Mon Feb 6 19:55:30 2012 New Revision: 1241131 URL: http://svn.apache.org/viewvc?rev=1241131view=rev Log: Refactor ExifTagConstants into an enum, uncomment some constants that appear accidentally commented, protect public fields from changes, and place constants inside their corresponding enum field. Jira issue key: SANSELAN-42 Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GpsTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TagConstantsUtils.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterBase.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterLossless.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/examples/MetadataExample.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/examples/WriteExifMetadataExample.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/AsciiFieldTest.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/ExifRewriteTest.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/MakerNoteFieldTest.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/TextFieldTest.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/WriteTagsTest.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java?rev=1241131r1=1241130r2=1241131view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java Mon Feb 6 19:55:30 2012 @@ -28,6 +28,7 @@ import java.util.Map; import org.apache.commons.sanselan.ImageReadException; import org.apache.commons.sanselan.common.bytesource.ByteSource; +import org.apache.commons.sanselan.formats.tiff.constants.ExifTagConstants; import org.apache.commons.sanselan.formats.tiff.constants.GpsTagConstants; import org.apache.commons.sanselan.formats.tiff.constants.TagInfo; import org.apache.commons.sanselan.formats.tiff.constants.TiffConstants; @@ -577,15 +578,15 @@ public class TiffField implements TiffCo return (String) o; } -private static final MapObject, ListTagInfo makeTagMap(TagInfo tags[], +private static final MapObject, ListTagInfo makeTagMap(ListTagInfo tags, boolean ignoreDuplicates, String name) { // make sure to use the thread-safe version; this is shared state. MapObject, ListTagInfo map = new HashtableObject, ListTagInfo(); -for (int i = 0; i tags.length; i++) +for (int i = 0; i tags.size(); i++) { -TagInfo tag = tags[i]; +TagInfo tag = tags.get(i); Object key = new Integer(tag.tag); ListTagInfo tagList = map.get(key); @@ -615,7 +616,7 @@ public class TiffField implements TiffCo GPS); private static final MapObject, ListTagInfo TIFF_TAG_MAP = makeTagMap(TiffTagConstants.ALL_TIFF_TAGS, false, TIFF); -private static final MapObject, ListTagInfo EXIF_TAG_MAP = makeTagMap(ALL_EXIF_TAGS, true, +private static final MapObject, ListTagInfo EXIF_TAG_MAP = makeTagMap(ExifTagConstants.ALL_EXIF_TAGS, true, EXIF); private static final MapObject, ListTagInfo ALL_TAG_MAP = makeTagMap(ALL_TAGS, true, All); Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java URL
svn commit: r1241131 [3/3] - in /commons/proper/sanselan/trunk/src: main/java/org/apache/commons/sanselan/formats/tiff/ main/java/org/apache/commons/sanselan/formats/tiff/constants/ main/java/org/apac
Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GpsTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GpsTagConstants.java?rev=1241131r1=1241130r2=1241131view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GpsTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GpsTagConstants.java Mon Feb 6 19:55:30 2012 @@ -16,10 +16,14 @@ */ package org.apache.commons.sanselan.formats.tiff.constants; +import java.util.Collections; +import java.util.List; + public enum GpsTagConstants implements TiffDirectoryConstants, -TiffFieldTypeConstants +TiffFieldTypeConstants, +TagHolder { GPS_VERSION_ID(new TagInfo( GPS Version ID, 0x, FIELD_TYPE_DESCRIPTION_BYTE, 4, @@ -208,12 +212,10 @@ public enum GpsTagConstants // -public static final TagInfo[] ALL_GPS_TAGS; -static { -GpsTagConstants[] gpsTagConstants = values(); -ALL_GPS_TAGS = new TagInfo[gpsTagConstants.length]; -for (int i = 0; i gpsTagConstants.length; i++) { -ALL_GPS_TAGS[i] = gpsTagConstants[i].tagInfo; -} +public TagInfo getTagInfo() { +return tagInfo; } + +public static final ListTagInfo ALL_GPS_TAGS = Collections.unmodifiableList( +TagConstantsUtils.mergeTagLists(values())); } Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TagConstantsUtils.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TagConstantsUtils.java?rev=1241131r1=1241130r2=1241131view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TagConstantsUtils.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TagConstantsUtils.java Mon Feb 6 19:55:30 2012 @@ -16,22 +16,25 @@ */ package org.apache.commons.sanselan.formats.tiff.constants; +import java.util.ArrayList; +import java.util.List; + public class TagConstantsUtils implements TiffDirectoryConstants { -public static TagInfo[] mergeTagLists(TagInfo lists[][]) +public static ListTagInfo mergeTagLists(TagHolder[]... tagHolders) { int count = 0; -for (int i = 0; i lists.length; i++) -count += lists[i].length; +for (int i = 0; i tagHolders.length; i++) { +count += tagHolders[i].length; +} -TagInfo result[] = new TagInfo[count]; +ArrayListTagInfo result = new ArrayListTagInfo(count); -int index = 0; -for (int i = 0; i lists.length; i++) -{ -System.arraycopy(lists[i], 0, result, index, lists[i].length); -index += lists[i].length; +for (int i = 0; i tagHolders.length; i++) { +for (int j = 0; j tagHolders[i].length; j++) { +result.add(tagHolders[i][j].getTagInfo()); +} } return result; Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffTagConstants.java?rev=1241131r1=1241130r2=1241131view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffTagConstants.java Mon Feb 6 19:55:30 2012 @@ -16,7 +16,10 @@ */ package org.apache.commons.sanselan.formats.tiff.constants; -public enum TiffTagConstants implements TiffFieldTypeConstants, TiffDirectoryConstants +import java.util.Collections; +import java.util.List; + +public enum TiffTagConstants implements TiffFieldTypeConstants, TiffDirectoryConstants, TagHolder { NEW_SUBFILE_TYPE(new TagInfo( @@ -311,12 +314,10 @@ public enum TiffTagConstants implements this.tagInfo = tagInfo; } -public static final TagInfo[] ALL_TIFF_TAGS; -static { -TiffTagConstants[] tiffTagConstants = values(); -ALL_TIFF_TAGS = new TagInfo[tiffTagConstants.length]; -for (int i = 0; i tiffTagConstants.length; i++) { -ALL_TIFF_TAGS[i] =
svn commit: r1241351 - /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TagHolder.java
Author: damjan Date: Tue Feb 7 05:30:45 2012 New Revision: 1241351 URL: http://svn.apache.org/viewvc?rev=1241351view=rev Log: Add a class that was missed on the last commit. Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TagHolder.java (with props) Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TagHolder.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TagHolder.java?rev=1241351view=auto == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TagHolder.java (added) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TagHolder.java Tue Feb 7 05:30:45 2012 @@ -0,0 +1,5 @@ +package org.apache.commons.sanselan.formats.tiff.constants; + +public interface TagHolder { +TagInfo getTagInfo(); +} Propchange: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TagHolder.java -- svn:eol-style = native
svn commit: r1241569 [1/3] - in /commons/proper/sanselan/trunk/src: main/java/org/apache/commons/sanselan/formats/tiff/ main/java/org/apache/commons/sanselan/formats/tiff/constants/ main/java/org/apac
Author: damjan Date: Tue Feb 7 19:33:57 2012 New Revision: 1241569 URL: http://svn.apache.org/viewvc?rev=1241569view=rev Log: Converted TiffDirectoryConstants to an enum, moved constants in ExifTagConstants out of enum types (where apparently Java doesn't allow them to ever be found?), added licences to files where it was left out in previous commits, and converted some magic numbers to constants. Jira issue key: SANSELAN-42 Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffDirectoryType.java (with props) Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GpsTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TagConstantsUtils.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TagHolder.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TagInfo.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffDirectoryConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputDirectory.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/icc/IccTagDataTypes.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/icc/IccTagTypes.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/TextFieldTest.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java?rev=1241569r1=1241568r2=1241569view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java Tue Feb 7 19:33:57 2012 @@ -32,6 +32,7 @@ import org.apache.commons.sanselan.forma import org.apache.commons.sanselan.formats.tiff.constants.GpsTagConstants; import org.apache.commons.sanselan.formats.tiff.constants.TagInfo; import org.apache.commons.sanselan.formats.tiff.constants.TiffConstants; +import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType; import org.apache.commons.sanselan.formats.tiff.constants.TiffTagConstants; import org.apache.commons.sanselan.formats.tiff.fieldtypes.FieldType; @@ -137,7 +138,7 @@ public class TiffField implements TiffCo for (int i = 0; i possibleMatches.size(); i++) { TagInfo tagInfo = possibleMatches.get(i); -if (tagInfo.directoryType == EXIF_DIRECTORY_UNKNOWN) +if (tagInfo.directoryType == TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN) // pass continue; else if (directoryType == tagInfo.directoryType.directoryType) @@ -149,7 +150,7 @@ public class TiffField implements TiffCo { TagInfo tagInfo = possibleMatches.get(i); -if (tagInfo.directoryType == EXIF_DIRECTORY_UNKNOWN) +if (tagInfo.directoryType == TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN) // pass continue; else if (directoryType = 0 @@ -165,7 +166,7 @@ public class TiffField implements TiffCo { TagInfo tagInfo = possibleMatches.get(i); -if (tagInfo.directoryType == EXIF_DIRECTORY_UNKNOWN) +if (tagInfo.directoryType == TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN) return tagInfo; } Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java?rev=1241569r1=1241568r2=1241569view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java (original
svn commit: r1241569 [3/3] - in /commons/proper/sanselan/trunk/src: main/java/org/apache/commons/sanselan/formats/tiff/ main/java/org/apache/commons/sanselan/formats/tiff/constants/ main/java/org/apac
Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GpsTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GpsTagConstants.java?rev=1241569r1=1241568r2=1241569view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GpsTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GpsTagConstants.java Tue Feb 7 19:33:57 2012 @@ -27,153 +27,153 @@ public enum GpsTagConstants { GPS_VERSION_ID(new TagInfo( GPS Version ID, 0x, FIELD_TYPE_DESCRIPTION_BYTE, 4, -EXIF_DIRECTORY_GPS)), +TiffDirectoryType.EXIF_DIRECTORY_GPS)), // GPS_LATITUDE_REF(new TagInfo( GPS Latitude Ref, 0x0001, FIELD_TYPE_DESCRIPTION_ASCII, 2, -EXIF_DIRECTORY_GPS)), +TiffDirectoryType.EXIF_DIRECTORY_GPS)), // GPS_LATITUDE(new TagInfo( GPS Latitude, 0x0002, FIELD_TYPE_DESCRIPTION_RATIONAL, 3, -EXIF_DIRECTORY_GPS)), +TiffDirectoryType.EXIF_DIRECTORY_GPS)), // GPS_LONGITUDE_REF(new TagInfo( GPS Longitude Ref, 0x0003, FIELD_TYPE_DESCRIPTION_ASCII, 2, -EXIF_DIRECTORY_GPS)), +TiffDirectoryType.EXIF_DIRECTORY_GPS)), // GPS_LONGITUDE(new TagInfo( GPS Longitude, 0x0004, FIELD_TYPE_DESCRIPTION_RATIONAL, 3, -EXIF_DIRECTORY_GPS)), +TiffDirectoryType.EXIF_DIRECTORY_GPS)), // GPS_ALTITUDE_REF(new TagInfo( GPS Altitude Ref, 0x0005, FIELD_TYPE_DESCRIPTION_BYTE, 1, -EXIF_DIRECTORY_GPS)), +TiffDirectoryType.EXIF_DIRECTORY_GPS)), // GPS_ALTITUDE(new TagInfo( GPS Altitude, 0x0006, FIELD_TYPE_DESCRIPTION_RATIONAL, 1, -EXIF_DIRECTORY_GPS)), +TiffDirectoryType.EXIF_DIRECTORY_GPS)), // GPS_TIME_STAMP(new TagInfo( GPS Time Stamp, 0x0007, FIELD_TYPE_DESCRIPTION_RATIONAL, 3, -EXIF_DIRECTORY_GPS)), +TiffDirectoryType.EXIF_DIRECTORY_GPS)), // GPS_SATELLITES(new TagInfo( GPS Satellites, 0x0008, FIELD_TYPE_DESCRIPTION_ASCII, -1, -EXIF_DIRECTORY_GPS)), +TiffDirectoryType.EXIF_DIRECTORY_GPS)), // GPS_STATUS(new TagInfo(GPS Status, -0x0009, FIELD_TYPE_DESCRIPTION_ASCII, 2, EXIF_DIRECTORY_GPS)), +0x0009, FIELD_TYPE_DESCRIPTION_ASCII, 2, TiffDirectoryType.EXIF_DIRECTORY_GPS)), // GPS_MEASURE_MODE(new TagInfo( GPS Measure Mode, 0x000a, FIELD_TYPE_DESCRIPTION_ASCII, 2, -EXIF_DIRECTORY_GPS)), +TiffDirectoryType.EXIF_DIRECTORY_GPS)), // GPS_DOP(new TagInfo(GPS DOP, -0x000b, FIELD_TYPE_DESCRIPTION_RATIONAL, 1, EXIF_DIRECTORY_GPS)), +0x000b, FIELD_TYPE_DESCRIPTION_RATIONAL, 1, TiffDirectoryType.EXIF_DIRECTORY_GPS)), // GPS_SPEED_REF(new TagInfo( GPS Speed Ref, 0x000c, FIELD_TYPE_DESCRIPTION_ASCII, 2, -EXIF_DIRECTORY_GPS)), +TiffDirectoryType.EXIF_DIRECTORY_GPS)), // GPS_SPEED(new TagInfo(GPS Speed, -0x000d, FIELD_TYPE_DESCRIPTION_RATIONAL, 1, EXIF_DIRECTORY_GPS)), +0x000d, FIELD_TYPE_DESCRIPTION_RATIONAL, 1, TiffDirectoryType.EXIF_DIRECTORY_GPS)), // GPS_TRACK_REF(new TagInfo( GPS Track Ref, 0x000e, FIELD_TYPE_DESCRIPTION_ASCII, 2, -EXIF_DIRECTORY_GPS)), +TiffDirectoryType.EXIF_DIRECTORY_GPS)), // GPS_TRACK(new TagInfo(GPS Track, -0x000f, FIELD_TYPE_DESCRIPTION_RATIONAL, 1, EXIF_DIRECTORY_GPS)), +0x000f, FIELD_TYPE_DESCRIPTION_RATIONAL, 1, TiffDirectoryType.EXIF_DIRECTORY_GPS)), //
svn commit: r1245871 [5/5] - in /commons/proper/sanselan/trunk: ./ src/main/java/org/apache/commons/sanselan/common/ src/main/java/org/apache/commons/sanselan/formats/jpeg/ src/main/java/org/apache/co
Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputSet.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputSet.java?rev=1245871r1=1245870r2=1245871view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputSet.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputSet.java Sat Feb 18 06:43:33 2012 @@ -20,9 +20,10 @@ import java.util.ArrayList; import java.util.List; import org.apache.commons.sanselan.ImageWriteException; +import org.apache.commons.sanselan.common.RationalNumberUtilities; import org.apache.commons.sanselan.formats.tiff.constants.GpsTagConstants; -import org.apache.commons.sanselan.formats.tiff.constants.TagInfo; import org.apache.commons.sanselan.formats.tiff.constants.TiffConstants; +import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo; import org.apache.commons.sanselan.util.Debug; public final class TiffOutputSet implements TiffConstants @@ -153,21 +154,12 @@ public final class TiffOutputSet impleme String latitudeRef = latitude 0 ? S : N; latitude = Math.abs(latitude); -{ -TiffOutputField longitudeRefField = TiffOutputField.create( -GpsTagConstants.GPS_LONGITUDE_REF.tagInfo, byteOrder, -longitudeRef); - gpsDirectory.removeField(GpsTagConstants.GPS_LONGITUDE_REF.tagInfo); -gpsDirectory.add(longitudeRefField); -} +gpsDirectory.removeField(GpsTagConstants.GPS_TAG_GPS_LONGITUDE_REF); +gpsDirectory.add(GpsTagConstants.GPS_TAG_GPS_DEST_LONGITUDE_REF, longitudeRef); + +gpsDirectory.removeField(GpsTagConstants.GPS_TAG_GPS_LATITUDE_REF); +gpsDirectory.add(GpsTagConstants.GPS_TAG_GPS_DEST_LATITUDE_REF, latitudeRef); -{ -TiffOutputField latitudeRefField = TiffOutputField.create( -GpsTagConstants.GPS_LATITUDE_REF.tagInfo, byteOrder, -latitudeRef); -gpsDirectory.removeField(GpsTagConstants.GPS_LATITUDE_REF.tagInfo); -gpsDirectory.add(latitudeRefField); -} { double value = longitude; @@ -178,15 +170,12 @@ public final class TiffOutputSet impleme value %= 1; value *= 60.0; double longitudeSeconds = value; -Double values[] = { -new Double(longitudeDegrees), new Double(longitudeMinutes), -new Double(longitudeSeconds), -}; - -TiffOutputField longitudeField = TiffOutputField.create( -GpsTagConstants.GPS_LONGITUDE.tagInfo, byteOrder, values); -gpsDirectory.removeField(GpsTagConstants.GPS_LONGITUDE.tagInfo); -gpsDirectory.add(longitudeField); + +gpsDirectory.removeField(GpsTagConstants.GPS_TAG_GPS_LONGITUDE); +gpsDirectory.add(GpsTagConstants.GPS_TAG_GPS_DEST_LONGITUDE, + RationalNumberUtilities.getRationalNumber(longitudeDegrees), + RationalNumberUtilities.getRationalNumber(longitudeMinutes), + RationalNumberUtilities.getRationalNumber(longitudeSeconds)); } { @@ -198,15 +187,12 @@ public final class TiffOutputSet impleme value %= 1; value *= 60.0; double latitudeSeconds = value; -Double values[] = { -new Double(latitudeDegrees), new Double(latitudeMinutes), -new Double(latitudeSeconds), -}; - -TiffOutputField latitudeField = TiffOutputField.create( -GpsTagConstants.GPS_LATITUDE.tagInfo, byteOrder, values); -gpsDirectory.removeField(GpsTagConstants.GPS_LATITUDE.tagInfo); -gpsDirectory.add(latitudeField); + +gpsDirectory.removeField(GpsTagConstants.GPS_TAG_GPS_LATITUDE); +gpsDirectory.add(GpsTagConstants.GPS_TAG_GPS_LATITUDE, +RationalNumberUtilities.getRationalNumber(latitudeDegrees), +RationalNumberUtilities.getRationalNumber(latitudeMinutes), + RationalNumberUtilities.getRationalNumber(latitudeSeconds)); } } @@ -247,7 +233,7 @@ public final class TiffOutputSet impleme public TiffOutputDirectory addRootDirectory() throws ImageWriteException { TiffOutputDirectory result = new TiffOutputDirectory( -DIRECTORY_TYPE_ROOT); +DIRECTORY_TYPE_ROOT, byteOrder); addDirectory(result); return result; } @@ -255,14 +241,14 @@ public final class TiffOutputSet impleme public TiffOutputDirectory
svn commit: r1290963 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff: ./ constants/ taginfos/ write/
Author: damjan Date: Sun Feb 19 08:29:56 2012 New Revision: 1290963 URL: http://svn.apache.org/viewvc?rev=1290963view=rev Log: Fix types written to some tags using the new EXIF writing interface. Rename TagInfoText to TagIntoGpsText. Add TagInfoXpText for fields like XPTITLE, and encode/decode it using UTF-16LE like Windows does. Copy the new high-level EXIF interface to TiffImageMetadata too. Jira issue key: SANSELAN-7 Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoGpsText.java (with props) commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoXpString.java (with props) Removed: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoText.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffDirectory.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GpsTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputDirectory.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffDirectory.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffDirectory.java?rev=1290963r1=1290962r2=1290963view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffDirectory.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffDirectory.java Sun Feb 19 08:29:56 2012 @@ -31,6 +31,7 @@ import org.apache.commons.sanselan.forma import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByte; import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoDouble; import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoFloat; +import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoGpsText; import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoLong; import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoRational; import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoSByte; @@ -38,6 +39,7 @@ import org.apache.commons.sanselan.forma import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoSRational; import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoSShort; import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort; +import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoXpString; public class TiffDirectory extends TiffElement implements TiffConstants //extends BinaryFileFunctions @@ -329,6 +331,22 @@ public class TiffDirectory extends TiffE return tag.getValue(field.byteOrder, bytes); } +public String getFieldValue(TagInfoGpsText tag) throws ImageReadException { +TiffField field = findField(tag); +if (field == null) { +return null; +} +return tag.getValue(field); +} + +public String getFieldValue(TagInfoXpString tag) throws ImageReadException { +TiffField field = findField(tag); +if (field == null) { +return null; +} +return tag.getValue(field); +} + public final class ImageDataElement extends TiffElement { public ImageDataElement(int offset, int length) Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java?rev=1290963r1=1290962r2=1290963view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java Sun Feb 19 08:29:56 2012 @@ -33,6 +33,19 @@ import org.apache.commons.sanselan.forma import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType; import org.apache.commons.sanselan.formats.tiff.fieldtypes.FieldType; import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo; +import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii; +import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByte; +import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoDouble; +import
svn commit: r1290986 - /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoGpsText.java
Author: damjan Date: Sun Feb 19 10:39:03 2012 New Revision: 1290986 URL: http://svn.apache.org/viewvc?rev=1290986view=rev Log: The Unicode encoding for GPS text written by Exiftool, is UCS-2 in either little-endian or big-endian, depending on the file's encoding. Do the same, since it can't read our UTF-8, which was guessed anyway. Jira issue key: SANSELAN-51 Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoGpsText.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoGpsText.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoGpsText.java?rev=1290986r1=1290985r2=1290986view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoGpsText.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoGpsText.java Sun Feb 19 10:39:03 2012 @@ -20,6 +20,7 @@ import java.io.UnsupportedEncodingExcept import org.apache.commons.sanselan.ImageReadException; import org.apache.commons.sanselan.ImageWriteException; +import org.apache.commons.sanselan.common.BinaryConstants; import org.apache.commons.sanselan.common.BinaryFileFunctions; import org.apache.commons.sanselan.formats.tiff.TiffField; import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType; @@ -42,33 +43,44 @@ public final class TagInfoGpsText extend private static final class TextEncoding { public final byte prefix[]; -public final String encodingName; +public final String encodingNameLE; +public final String encodingNameBE; -public TextEncoding(final byte[] prefix, final String encodingName) +public TextEncoding(final byte[] prefix, final String encodingNameLE, +final String encodingNameBE) { this.prefix = prefix; -this.encodingName = encodingName; +this.encodingNameLE = encodingNameLE; +this.encodingNameBE = encodingNameBE; +} + +public String getEncodingName(int byteOrder) { +if (byteOrder == BinaryConstants.BYTE_ORDER_BIG_ENDIAN) { +return encodingNameBE; +} else { +return encodingNameLE; +} } } private static final TagInfoGpsText.TextEncoding TEXT_ENCODING_ASCII = new TextEncoding( new byte[]{ 0x41, 0x53, 0x43, 0x49, 0x49, 0x00, 0x00, 0x00, -}, US-ASCII); // ITU-T T.50 IA5 +}, US-ASCII, US-ASCII); // ITU-T T.50 IA5 private static final TagInfoGpsText.TextEncoding TEXT_ENCODING_JIS = new TextEncoding( new byte[]{ 0x4A, 0x49, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, -}, JIS); // JIS X208-1990 +}, JIS, JIS); // JIS X208-1990 private static final TagInfoGpsText.TextEncoding TEXT_ENCODING_UNICODE = new TextEncoding( new byte[]{ 0x55, 0x4E, 0x49, 0x43, 0x4F, 0x44, 0x45, 0x00, // Which Unicode encoding to use, UTF-8? -}, UTF-8); // Unicode Standard +}, UTF-16LE, UTF-16BE); // Unicode Standard private static final TagInfoGpsText.TextEncoding TEXT_ENCODING_UNDEFINED = new TextEncoding( new byte[]{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Try to interpret an undefined text as ISO-8859-1 (Latin) -}, ISO-8859-1); // Undefined +}, ISO-8859-1, ISO-8859-1); // Undefined private static final TagInfoGpsText.TextEncoding TEXT_ENCODINGS[] = { TEXT_ENCODING_ASCII, // TEXT_ENCODING_JIS, // @@ -89,9 +101,9 @@ public final class TagInfoGpsText extend { // try ASCII, with NO prefix. byte asciiBytes[] = s -.getBytes(TEXT_ENCODING_ASCII.encodingName); +.getBytes(TEXT_ENCODING_ASCII.getEncodingName(byteOrder)); String decodedAscii = new String(asciiBytes, -TEXT_ENCODING_ASCII.encodingName); +TEXT_ENCODING_ASCII.getEncodingName(byteOrder)); if (decodedAscii.equals(s)) { // no unicode/non-ascii values. @@ -108,7 +120,7 @@ public final class TagInfoGpsText extend { // use unicode byte unicodeBytes[] = s -.getBytes(TEXT_ENCODING_UNICODE.encodingName); + .getBytes(TEXT_ENCODING_UNICODE.getEncodingName(byteOrder)); byte result[] = new byte[unicodeBytes.length
svn commit: r1291388 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg: JpegImageParser.java segments/ComSegment.java
Author: damjan Date: Mon Feb 20 17:51:37 2012 New Revision: 1291388 URL: http://svn.apache.org/viewvc?rev=1291388view=rev Log: UTF-8 seems like a more reasonable choice to expect when reading JPEG COM sections. 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/segments/ComSegment.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=1291388r1=1291387r2=1291388view=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 Mon Feb 20 17:51:37 2012 @@ -795,7 +795,7 @@ public class JpegImageParser extends Ima ComSegment comSegment = (ComSegment) commentSegments.get(i); String comment = ; try { -comment = new String(comSegment.comment, ISO-8859-1); +comment = new String(comSegment.comment, UTF-8); } catch (UnsupportedEncodingException cannotHappen) { } Comments.add(comment); Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/ComSegment.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/ComSegment.java?rev=1291388r1=1291387r2=1291388view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/ComSegment.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/ComSegment.java Mon Feb 20 17:51:37 2012 @@ -49,7 +49,7 @@ public class ComSegment extends Segment { String commentString = ; try { -commentString = new String(comment, ISO-8859-1); +commentString = new String(comment, UTF-8); } catch (UnsupportedEncodingException cannotHappen) { } return COM ( + commentString + );
svn commit: r1291410 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan: common/ formats/jpeg/ formats/jpeg/exif/ formats/jpeg/iptc/ formats/jpeg/segments/ formats/jpeg/xmp/
Author: damjan Date: Mon Feb 20 18:53:24 2012 New Revision: 1291410 URL: http://svn.apache.org/viewvc?rev=1291410view=rev Log: Hide some arrays constants. Jira issue key: SANSELAN-42 Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryConstant.java (with props) Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryFileFunctions.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryFileParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegConstants.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/iptc/IptcParser.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/segments/JfifSegment.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegRewriter.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpRewriter.java Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryConstant.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryConstant.java?rev=1291410view=auto == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryConstant.java (added) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryConstant.java Mon Feb 20 18:53:24 2012 @@ -0,0 +1,73 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.sanselan.common; + +import java.io.IOException; +import java.io.OutputStream; +import java.util.Arrays; + +public class BinaryConstant implements Cloneable { +private final byte[] value; + +public BinaryConstant(byte[] value) { +this.value = value.clone(); +} + +@Override +public BinaryConstant clone() throws CloneNotSupportedException { +return new BinaryConstant(value); +} + +@Override +public boolean equals(Object obj) { +if (obj == null) { +return false; +} +if (!(obj instanceof BinaryConstant)) { +return false; +} +BinaryConstant other = (BinaryConstant)obj; +return equals(other.value); +} + +public boolean equals(byte[] bytes) { +return Arrays.equals(value, bytes); +} + +@Override +public int hashCode() { +return Arrays.hashCode(value); +} + +public byte get(int i) { +return value[i]; +} + +public int size() { +return value.length; +} + +public byte[] toByteArray() { +return value.clone(); +} + +public void writeTo(OutputStream os) throws IOException { +for (int i = 0; i value.length; i++) { +os.write(value[i]); +} +} +} Propchange: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryConstant.java -- svn:eol-style = native Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryFileFunctions.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryFileFunctions.java?rev=1291410r1=1291409r2=1291410view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryFileFunctions.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons
svn commit: r1291440 - in /commons/proper/sanselan/trunk: pom.xml src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcParser.java src/main/java/org/apache/commons/sanselan/formats/tiff/con
Author: damjan Date: Mon Feb 20 21:02:15 2012 New Revision: 1291440 URL: http://svn.apache.org/viewvc?rev=1291440view=rev Log: Require maven-assembly-plugin version = 2.3, because the assembly goal fails with earlier versions due to http://jira.codehaus.org/browse/MASSEMBLY-515 which was caused by http://jira.codehaus.org/browse/PLXCOMP-195 Also some other minor code cleanups. Modified: commons/proper/sanselan/trunk/pom.xml commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffDirectoryConstants.java Modified: commons/proper/sanselan/trunk/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/pom.xml?rev=1291440r1=1291439r2=1291440view=diff == --- commons/proper/sanselan/trunk/pom.xml (original) +++ commons/proper/sanselan/trunk/pom.xml Mon Feb 20 21:02:15 2012 @@ -79,6 +79,7 @@ plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-assembly-plugin/artifactId +version2.3/version configuration descriptors descriptorsrc/assemble/bin.xml/descriptor @@ -116,7 +117,6 @@ reporting plugins /plugins - /reporting !-- == -- Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcParser.java?rev=1291440r1=1291439r2=1291440view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcParser.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcParser.java Mon Feb 20 21:02:15 2012 @@ -29,7 +29,6 @@ import java.util.Map; import org.apache.commons.sanselan.ImageReadException; import org.apache.commons.sanselan.ImageWriteException; import org.apache.commons.sanselan.SanselanConstants; -import org.apache.commons.sanselan.common.BinaryFileFunctions; import org.apache.commons.sanselan.common.BinaryFileParser; import org.apache.commons.sanselan.common.BinaryInputStream; import org.apache.commons.sanselan.common.BinaryOutputStream; Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffDirectoryConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffDirectoryConstants.java?rev=1291440r1=1291439r2=1291440view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffDirectoryConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffDirectoryConstants.java Mon Feb 20 21:02:15 2012 @@ -27,7 +27,6 @@ public interface TiffDirectoryConstants public static final int DIRECTORY_TYPE_SUB2 = 3; public static final int DIRECTORY_TYPE_THUMBNAIL = 2; public static final int DIRECTORY_TYPE_EXIF = -2; -//public static final int DIRECTORY_TYPE_SUB = 5; public static final int DIRECTORY_TYPE_GPS = -3; public static final int DIRECTORY_TYPE_INTEROPERABILITY = -4; public static final int DIRECTORY_TYPE_MAKER_NOTES = -5;
svn commit: r1291861 - /commons/proper/sanselan/trunk/pom.xml
Author: damjan Date: Tue Feb 21 15:23:34 2012 New Revision: 1291861 URL: http://svn.apache.org/viewvc?rev=1291861view=rev Log: Run a Findbugs analysis on mvn site. Submitted by: Adrian Moerchen apache dot org at rest dot scrobble dot me Jira issue key: SANSELAN-63 Modified: commons/proper/sanselan/trunk/pom.xml Modified: commons/proper/sanselan/trunk/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/pom.xml?rev=1291861r1=1291860r2=1291861view=diff == --- commons/proper/sanselan/trunk/pom.xml (original) +++ commons/proper/sanselan/trunk/pom.xml Tue Feb 21 15:23:34 2012 @@ -116,6 +116,11 @@ reporting plugins + plugin +groupIdorg.codehaus.mojo/groupId +artifactIdfindbugs-maven-plugin/artifactId +version2.4.0/version + /plugin /plugins /reporting
svn commit: r1291921 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan: ./ common/ common/bytesource/ common/itu_t4/ common/mylzw/ formats/jpeg/segments/ formats/png/ forma
Author: damjan Date: Tue Feb 21 17:07:15 2012 New Revision: 1291921 URL: http://svn.apache.org/viewvc?rev=1291921view=rev Log: Fix some bugs found by Findbugs. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/ImageParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryConstant.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryFileFunctions.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryInputStream.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceInputStream.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/itu_t4/T4AndT6Compression.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/mylzw/MyLzwCompressor.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/png/PngConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/PnmImageParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeAscii.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/icc/IccProfileParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/icc/IccTag.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/palette/ColorSpaceSubset.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/palette/MedianCutQuantizer.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/util/Debug.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/util/IoUtils.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/ImageParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/ImageParser.java?rev=1291921r1=1291920r2=1291921view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/ImageParser.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/ImageParser.java Tue Feb 21 17:07:15 2012 @@ -82,7 +82,7 @@ public abstract class ImageParser extend public final IImageMetadata getMetadata(byte bytes[]) throws ImageReadException, IOException { -return getMetadata(bytes); +return getMetadata(bytes, null); } public final IImageMetadata getMetadata(byte bytes[], Map params) Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryConstant.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryConstant.java?rev=1291921r1=1291920r2=1291921view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryConstant.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryConstant.java Tue Feb 21 17:07:15 2012 @@ -29,7 +29,7 @@ public class BinaryConstant implements C @Override public BinaryConstant clone() throws CloneNotSupportedException { -return new BinaryConstant(value); +return (BinaryConstant) super.clone(); } @Override Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryFileFunctions.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryFileFunctions.java?rev=1291921r1=1291920r2=1291921view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryFileFunctions.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryFileFunctions.java Tue Feb 21 17:07:15 2012 @@ -761,7 +761,7 @@ public class BinaryFileFunctions impleme System.out.println(msg + : ' + Integer.toBinaryString(0xff i)); } -public final static int CharsToQuad(char c1, char c2, char c3, char c4) +public final static int charsToQuad(char c1, char c2, char c3, char c4) { return (((0xff c1) 24) | ((0xff c2) 16) | ((0xff c3) 8) | ((0xff c4) 0)); } Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons
svn commit: r1291956 - in /commons/proper/sanselan/trunk: ./ src/main/java/org/apache/commons/sanselan/ src/main/java/org/apache/commons/sanselan/formats/rgbe/ src/site/xdoc/ src/test/data/images/rgbe
Author: damjan Date: Tue Feb 21 18:50:17 2012 New Revision: 1291956 URL: http://svn.apache.org/viewvc?rev=1291956view=rev Log: Added support for reading the RGBE / Radiance HDR image format. Submitted by: Peter Royal proyal at apache dot org Jira issue key: SANSELAN-25 Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/rgbe/ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/rgbe/InfoHeaderReader.java (with props) commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/rgbe/RgbeConstants.java (with props) commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/rgbe/RgbeImageParser.java (with props) commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/rgbe/RgbeInfo.java (with props) commons/proper/sanselan/trunk/src/test/data/images/rgbe/ commons/proper/sanselan/trunk/src/test/data/images/rgbe/1/ commons/proper/sanselan/trunk/src/test/data/images/rgbe/1/body_wave_N_0001.hdr (with props) commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/rgbe/ commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/rgbe/RgbeBaseTest.java (with props) commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/rgbe/RgbeReadTest.java (with props) Modified: commons/proper/sanselan/trunk/RELEASE_NOTES commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/ImageFormat.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/ImageParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/Sanselan.java commons/proper/sanselan/trunk/src/site/xdoc/formatsupport.xml Modified: commons/proper/sanselan/trunk/RELEASE_NOTES URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/RELEASE_NOTES?rev=1291956r1=1291955r2=1291956view=diff == --- commons/proper/sanselan/trunk/RELEASE_NOTES (original) +++ commons/proper/sanselan/trunk/RELEASE_NOTES Tue Feb 21 18:50:17 2012 @@ -44,6 +44,7 @@ Release 0.98 * Altered TIFF tag searching to do an exact directory match when possible. * SANSELAN-48 - added support for reading and writing CCITT Modified Huffman, Group 3 and Group 4 images. * SANSELAN-31 - added a high level type-safe API for reading and writing EXIF fields. + * SANSELAN-25 - added support for the RGBE (Radiance HDR) image format. Release 0.97 Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/ImageFormat.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/ImageFormat.java?rev=1291956r1=1291955r2=1291956view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/ImageFormat.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/ImageFormat.java Tue Feb 21 18:50:17 2012 @@ -78,6 +78,8 @@ public class ImageFormat public static final ImageFormat IMAGE_FORMAT_DCX = new ImageFormat(DCX); public static final ImageFormat IMAGE_FORMAT_XBM = new ImageFormat(XBM); public static final ImageFormat IMAGE_FORMAT_XPM = new ImageFormat(XPM); +public static final ImageFormat IMAGE_FORMAT_RGBE = new ImageFormat(RGBE); + public static final ImageFormat[] getAllFormats() { @@ -88,7 +90,7 @@ public class ImageFormat IMAGE_FORMAT_PPM, IMAGE_FORMAT_PNM, IMAGE_FORMAT_TGA, IMAGE_FORMAT_JBIG2, IMAGE_FORMAT_ICNS, IMAGE_FORMAT_WBMP, IMAGE_FORMAT_PCX, IMAGE_FORMAT_DCX, IMAGE_FORMAT_XBM, -IMAGE_FORMAT_XPM, +IMAGE_FORMAT_XPM, IMAGE_FORMAT_RGBE }; return result; Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/ImageParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/ImageParser.java?rev=1291956r1=1291955r2=1291956view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/ImageParser.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/ImageParser.java Tue Feb 21 18:50:17 2012 @@ -44,6 +44,7 @@ import org.apache.commons.sanselan.forma import org.apache.commons.sanselan.formats.png.PngImageParser; import org.apache.commons.sanselan.formats.pnm.PnmImageParser; import org.apache.commons.sanselan.formats.psd.PsdImageParser; +import org.apache.commons.sanselan.formats.rgbe.RgbeImageParser; import org.apache.commons.sanselan.formats.tiff.TiffImageParser; import
svn commit: r1291967 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc: IptcParser.java IptcRecord.java
Author: damjan Date: Tue Feb 21 19:47:07 2012 New Revision: 1291967 URL: http://svn.apache.org/viewvc?rev=1291967view=rev Log: Add a field to IptcRecord that contains its raw bytes, and a getter for this value. Jira issue key: SANSELAN-33 Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcRecord.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcParser.java?rev=1291967r1=1291966r2=1291967view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcParser.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcParser.java Tue Feb 21 19:47:07 2012 @@ -87,6 +87,7 @@ public class IptcParser extends BinaryFi * Record data (unlike block data) is NOT padded to have an even length. * * Record data, for IPTC record, should always be ISO-8859-1. + * But according to SANSELAN-33, this isn't always the case. * * The exception is the first record in the block, which must always be a * record version record, whose value is a two-byte number; the value is @@ -248,7 +249,7 @@ public class IptcParser extends BinaryFi // Debug.debug(index, IPTC_TYPE_CREDIT.name); // } -IptcRecord element = new IptcRecord(iptcType, value); +IptcRecord element = new IptcRecord(iptcType, recordData, value); elements.add(element); } Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcRecord.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcRecord.java?rev=1291967r1=1291966r2=1291967view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcRecord.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/iptc/IptcRecord.java Tue Feb 21 19:47:07 2012 @@ -16,6 +16,7 @@ */ package org.apache.commons.sanselan.formats.jpeg.iptc; +import java.io.UnsupportedEncodingException; import java.util.Comparator; /* @@ -24,13 +25,32 @@ import java.util.Comparator; public class IptcRecord { public final IptcType iptcType; +private final byte[] bytes; public final String value; +public IptcRecord(IptcType iptcType, byte[] bytes, String value) +{ +this.iptcType = iptcType; +this.bytes = bytes; +this.value = value; +} + public IptcRecord(IptcType iptcType, String value) { this.iptcType = iptcType; +byte[] bytes; +try { +bytes = value.getBytes(ISO-8859-1); +} catch (UnsupportedEncodingException cannotHappen) { +bytes = null; +} +this.bytes = bytes; this.value = value; } + +public byte[] getRawBytes() { +return bytes.clone(); +} public String getValue() {
svn commit: r1292655 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan: common/bytesource/ByteSourceInputStream.java formats/tiff/TiffReader.java
Author: damjan Date: Thu Feb 23 05:38:24 2012 New Revision: 1292655 URL: http://svn.apache.org/viewvc?rev=1292655view=rev Log: Fix some issues with skip() functions. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceInputStream.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceInputStream.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceInputStream.java?rev=1292655r1=1292654r2=1292655view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceInputStream.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceInputStream.java Thu Feb 23 05:38:24 2012 @@ -180,12 +180,7 @@ public class ByteSourceInputStream exten } InputStream is = getInputStream(); -for (long skipped = 0; skipped blockStart; ) { -long ret = is.skip(blockStart - skipped); -if (ret = 0) { -skipped += ret; -} -} +skipBytes(is, blockStart); byte bytes[] = new byte[blockLength]; int total = 0; Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java?rev=1292655r1=1292654r2=1292655view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java Thu Feb 23 05:38:24 2012 @@ -136,24 +136,17 @@ public class TiffReader extends BinaryFi InputStream is = null; try { -is = byteSource.getInputStream(); -if (offset 0) { -for (long skipped = 0; skipped offset; ) { -long ret = is.skip(offset - skipped); -if (ret = 0) { -skipped += ret; -} -} -} - -ListTiffField fields = new ArrayListTiffField(); - if (offset = byteSource.getLength()) { // Debug.debug(skipping invalid directory!); return true; } +is = byteSource.getInputStream(); +skipBytes(is, offset); + +ListTiffField fields = new ArrayListTiffField(); + int entryCount; try {
svn commit: r1292909 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan: ./ common/bytesource/ common/mylzw/ formats/dcx/ formats/tiff/ formats/tiff/fieldtypes/ formats/tiff
Author: damjan Date: Thu Feb 23 19:24:22 2012 New Revision: 1292909 URL: http://svn.apache.org/viewvc?rev=1292909view=rev Log: Provide a way to write EXIF data into files using Sanselan.writeImage(). SanselanConstants get a PARAM_KEY_EXIF, similar to PARAM_KEY_XMP_XML, which references a TiffOutputSet containing EXIF tags to be written into the image. Only 2 file image formats support support EXIF: JPEG and TIFF. Since Sanselan's JPEG currently doesn't write files at all, only TIFF has been patched, and what it does is merge the TiffOutputSet given by the user with the TiffOutputSet generated by writing the image, not allowing the user's one to override any tags generated internally, but otherwise allowing any field and any directory to be written into the output file. Also eliminates Java 5 boxing of primitives (Findbugs). Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/SanselanConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceInputStream.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/mylzw/MyLzwCompressor.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/dcx/DcxImageParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeByte.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeLong.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/fieldtypes/FieldTypeUnknown.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterBase.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputDirectory.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/xpm/XpmImageParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/palette/MedianCutQuantizer.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/SanselanConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/SanselanConstants.java?rev=1292909r1=1292908r2=1292909view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/SanselanConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/SanselanConstants.java Thu Feb 23 19:24:22 2012 @@ -101,6 +101,16 @@ public interface SanselanConstants * * Only used when writing images. * p + * Valid values: TiffOutputSet to write into the image's EXIF metadata. + * p + */ +public static final String PARAM_KEY_EXIF = EXIF; + +/** + * Parameter key. + * + * Only used when writing images. + * p * Valid values: String of XMP XML. * p */ Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceInputStream.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceInputStream.java?rev=1292909r1=1292908r2=1292909view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceInputStream.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSourceInputStream.java Thu Feb 23 19:24:22 2012 @@ -207,7 +207,7 @@ public class ByteSourceInputStream exten long skipped; while ((skipped = is.skip(1024)) 0) result += skipped; -streamLength = new Long(result); +streamLength = result; return result; } Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/mylzw/MyLzwCompressor.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/mylzw/MyLzwCompressor.java?rev=1292909r1=1292908r2=1292909view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/mylzw/MyLzwCompressor.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/mylzw
svn commit: r1293543 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan: common/ formats/tiff/ formats/tiff/datareaders/ formats/tiff/photometricinterpreters/ util/
Author: damjan Date: Sat Feb 25 07:57:48 2012 New Revision: 1293543 URL: http://svn.apache.org/viewvc?rev=1293543view=rev Log: Introduced an ImageBuilder helper class, that provides an efficient setRGB() method. Used it within TIFF: the change reduced the time taken to load a 20 megapixel file by about 33%, and reduced the total time taken for the test phase of mvn package by 3-4%. This work is largely based on the patch by Gary Lucas in SANSELAN-56. Also commented out Debug.purgeMemory() - this method which sleeps and calls System.gc() should be unnecessary on modern JVMs, and with it commented out, the time taken for mvn package goes from 1:42 to only 0:44. Submitted by: Gary Lucas gwlucas at sonalysts dot com Jira issue key: SANSELAN-56 Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/ImageBuilder.java (with props) Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderTiled.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreter.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterBiLevel.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterCieLab.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterCmyk.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterLogLuv.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterPalette.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterRgb.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreterYCbCr.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/util/Debug.java Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/ImageBuilder.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/ImageBuilder.java?rev=1293543view=auto == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/ImageBuilder.java (added) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/ImageBuilder.java Sat Feb 25 07:57:48 2012 @@ -0,0 +1,50 @@ +package org.apache.commons.sanselan.common; + +import java.awt.image.BufferedImage; +import java.awt.image.ColorModel; +import java.awt.image.DataBufferInt; +import java.awt.image.DirectColorModel; +import java.awt.image.WritableRaster; +import java.util.Properties; + +public class ImageBuilder { +private int[] data; +private int width; +private int height; +private boolean hasAlpha; + +public ImageBuilder(int width, int height, boolean hasAlpha) { +data = new int[width * height]; +this.width = width; +this.height = height; +this.hasAlpha = hasAlpha; +} + +public void setRGB(int x, int y, int argb) { +final int rowOffset = y * width; +data[rowOffset + x] = argb; +} + +public BufferedImage getBufferedImage() { +ColorModel colorModel; +WritableRaster raster; +DataBufferInt buffer = new DataBufferInt(data, width * height); +if (hasAlpha) { +colorModel = new DirectColorModel(32, +0x00ff, +0xff00, +0x00ff, +0xff00); +raster = WritableRaster.createPackedRaster(buffer, width, height, width, +new int[] { 0x00ff, 0xff00, 0x00ff, 0xff00 }, null); +} else { +colorModel = new DirectColorModel(24, +0x00ff, +0xff00, +0x00ff); +raster = WritableRaster.createPackedRaster(buffer, width, height, width, +new int[] { 0x00ff, 0xff00, 0x00ff }, null); +} +return new BufferedImage(colorModel, raster, colorModel.isAlphaPremultiplied
svn commit: r1293744 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders: DataReader.java DataReaderStrips.java DataReaderTiled.java
Author: damjan Date: Sun Feb 26 05:43:00 2012 New Revision: 1293744 URL: http://svn.apache.org/viewvc?rev=1293744view=rev Log: Some more TIFF performance enhancements. Make getSamplesAsBytes() use a preallocated array instead of allocating a new one on each pixel. Also simplifies an if statement so there's less work done per pixel. This reduces the running time by about 20%, and shortens the total time taken by tests run by mvn package by about 5%. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderTiled.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java?rev=1293744r1=1293743r2=1293744view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java Sun Feb 26 05:43:00 2012 @@ -64,10 +64,15 @@ public abstract class DataReader impleme public abstract void readImageData(ImageBuilder imageBuilder) throws ImageReadException, IOException; -protected int[] getSamplesAsBytes(BitInputStream bis) +/** + * Reads samples and returns them in an int array. + * @param bis the stream to read from + * @param result the samples array to populate, must be the same length as bitsPerSample.length + * @throws IOException + */ +protected void getSamplesAsBytes(BitInputStream bis, int[] result) throws IOException { -int result[] = new int[bitsPerSample.length]; for (int i = 0; i bitsPerSample.length; i++) { int bits = bitsPerSample[i]; @@ -85,8 +90,6 @@ public abstract class DataReader impleme } result[i] = sample; } - -return result; } protected int[] applyPredictor(int samples[], int x) Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java?rev=1293744r1=1293743r2=1293744view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java Sun Feb 26 05:43:00 2012 @@ -55,11 +55,15 @@ public final class DataReaderStrips exte ByteArrayInputStream bais = new ByteArrayInputStream(bytes); BitInputStream bis = new BitInputStream(bais); +if (y = height) { +return; +} +int[] samples = new int[bitsPerSample.length]; for (int i = 0; i pixels_per_strip; i++) { -int samples[] = getSamplesAsBytes(bis); +getSamplesAsBytes(bis, samples); -if ((x width) (y height)) +if (x width) { samples = applyPredictor(samples, x); Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderTiled.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderTiled.java?rev=1293744r1=1293743r2=1293744view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderTiled.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderTiled.java Sun Feb 26 05:43:00 2012 @@ -65,13 +65,14 @@ public final class DataReaderTiled exten int tileX = 0, tileY = 0; +int[] samples = new int[bitsPerSample.length]; for (int i = 0; i pixelsPerTile; i++) { int x = tileX + startX; int y = tileY + startY; -int samples[] = getSamplesAsBytes(bis); +getSamplesAsBytes(bis, samples); if ((x width) (y height)) {
svn commit: r1293770 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan: common/ImageBuilder.java formats/icns/IcnsDecoder.java
Author: damjan Date: Sun Feb 26 08:16:40 2012 New Revision: 1293770 URL: http://svn.apache.org/viewvc?rev=1293770view=rev Log: Use ImageBuilder for ICNS files. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/ImageBuilder.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/icns/IcnsDecoder.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/ImageBuilder.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/ImageBuilder.java?rev=1293770r1=1293769r2=1293770view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/ImageBuilder.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/ImageBuilder.java Sun Feb 26 08:16:40 2012 @@ -20,6 +20,19 @@ public class ImageBuilder { this.hasAlpha = hasAlpha; } +public int getWidth() { +return width; +} + +public int getHeight() { +return height; +} + +public int getRGB(int x, int y) { +final int rowOffset = y * width; +return data[rowOffset + x]; +} + public void setRGB(int x, int y, int argb) { final int rowOffset = y * width; data[rowOffset + x] = argb; Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/icns/IcnsDecoder.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/icns/IcnsDecoder.java?rev=1293770r1=1293769r2=1293770view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/icns/IcnsDecoder.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/icns/IcnsDecoder.java Sun Feb 26 08:16:40 2012 @@ -21,6 +21,7 @@ import java.util.ArrayList; import java.util.List; import org.apache.commons.sanselan.ImageReadException; +import org.apache.commons.sanselan.common.ImageBuilder; public class IcnsDecoder { @@ -305,7 +306,7 @@ public class IcnsDecoder }; private static void decode1BPPImage(IcnsType imageType, byte[] imageData, -BufferedImage bufferedImage) +ImageBuilder image) { int position = 0; int bitsLeft = 0; @@ -326,13 +327,13 @@ public class IcnsDecoder argb = 0x; value = 1; bitsLeft--; -bufferedImage.setRGB(x, y, argb); +image.setRGB(x, y, argb); } } } private static void decode4BPPImage(IcnsType imageType, byte[] imageData, -BufferedImage bufferedImage) +ImageBuilder image) { int i = 0; boolean visited = false; @@ -346,26 +347,26 @@ public class IcnsDecoder else index = 0xf imageData[i++]; visited = !visited; -bufferedImage.setRGB(x, y, palette_4bpp[index]); +image.setRGB(x, y, palette_4bpp[index]); } } } private static void decode8BPPImage(IcnsType imageType, byte[] imageData, -BufferedImage bufferedImage) +ImageBuilder image) { for (int y = 0; y imageType.getHeight(); y++) { for (int x = 0; x imageType.getWidth(); x++) { int index = 0xff imageData[y*imageType.getWidth() + x]; -bufferedImage.setRGB(x, y, palette_8bpp[index]); +image.setRGB(x, y, palette_8bpp[index]); } } } private static void decode32BPPImage(IcnsType imageType, byte[] imageData, -BufferedImage bufferedImage) +ImageBuilder image) { for (int y = 0; y imageType.getHeight(); y++) { @@ -375,27 +376,27 @@ public class IcnsDecoder ((0xff imageData[4*(y*imageType.getWidth() + x) + 1]) 16) | ((0xff imageData[4*(y*imageType.getWidth() + x) + 2]) 8) | (0xff imageData[4*(y*imageType.getWidth() + x) + 3]); -bufferedImage.setRGB(x, y, argb); +image.setRGB(x, y, argb); } } } -private static void apply1BPPMask(byte[] maskData, BufferedImage bufferedImage) throws ImageReadException +private static void apply1BPPMask(byte[] maskData, ImageBuilder image) throws ImageReadException { int position = 0; int bitsLeft = 0; int value = 0; // 1 bit icon types have image data followed by mask data in the same entry -int totalBytes
svn commit: r1293771 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp: BmpImageParser.java pixelparsers/PixelParser.java pixelparsers/PixelParserRle.java pixel
Author: damjan Date: Sun Feb 26 08:23:50 2012 New Revision: 1293771 URL: http://svn.apache.org/viewvc?rev=1293771view=rev Log: Use ImageBuilder for BMP files. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserRle.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserSimple.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java?rev=1293771r1=1293770r2=1293771view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java Sun Feb 26 08:23:50 2012 @@ -37,6 +37,7 @@ import org.apache.commons.sanselan.Image import org.apache.commons.sanselan.ImageWriteException; import org.apache.commons.sanselan.common.BinaryOutputStream; import org.apache.commons.sanselan.common.IImageMetadata; +import org.apache.commons.sanselan.common.ImageBuilder; import org.apache.commons.sanselan.common.bytesource.ByteSource; import org.apache.commons.sanselan.formats.bmp.pixelparsers.PixelParser; import org.apache.commons.sanselan.formats.bmp.pixelparsers.PixelParserBitFields; @@ -713,9 +714,6 @@ public class BmpImageParser extends Imag int width = bhi.width; int height = bhi.height; -BufferedImage result = getBufferedImageFactory(params) -.getColorBufferedImage(width, height, true); - if (verbose) { System.out.println(width: + width); @@ -725,10 +723,10 @@ public class BmpImageParser extends Imag } PixelParser pixelParser = ic.pixelParser; +ImageBuilder imageBuilder = new ImageBuilder(width, height, true); +pixelParser.processImage(imageBuilder); -pixelParser.processImage(result); - -return result; +return imageBuilder.getBufferedImage(); } Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParser.java?rev=1293771r1=1293770r2=1293771view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParser.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParser.java Sun Feb 26 08:23:50 2012 @@ -16,12 +16,12 @@ */ package org.apache.commons.sanselan.formats.bmp.pixelparsers; -import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.IOException; import org.apache.commons.sanselan.ImageReadException; import org.apache.commons.sanselan.common.BinaryFileParser; +import org.apache.commons.sanselan.common.ImageBuilder; import org.apache.commons.sanselan.formats.bmp.BmpHeaderInfo; public abstract class PixelParser @@ -43,7 +43,7 @@ public abstract class PixelParser is = new ByteArrayInputStream(ImageData); } -public abstract void processImage(BufferedImage bi) +public abstract void processImage(ImageBuilder imageBuilder) throws ImageReadException, IOException; protected int getColorTableRGB(int index) Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserRle.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserRle.java?rev=1293771r1=1293770r2=1293771view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserRle.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserRle.java Sun Feb 26 08:23:50 2012 @@ -21,6 +21,7 @@ import java.awt.image.DataBuffer; import java.io.IOException; import org.apache.commons.sanselan.ImageReadException; +import org.apache.commons.sanselan.common.ImageBuilder; import org.apache.commons.sanselan.formats.bmp.BmpHeaderInfo; public class PixelParserRle extends PixelParser
svn commit: r1293773 - /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java
Author: damjan Date: Sun Feb 26 08:28:36 2012 New Revision: 1293773 URL: http://svn.apache.org/viewvc?rev=1293773view=rev Log: Use ImageBuilder for GIF files. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java?rev=1293773r1=1293772r2=1293773view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java Sun Feb 26 08:28:36 2012 @@ -39,6 +39,7 @@ import org.apache.commons.sanselan.Image import org.apache.commons.sanselan.ImageWriteException; import org.apache.commons.sanselan.common.BinaryOutputStream; import org.apache.commons.sanselan.common.IImageMetadata; +import org.apache.commons.sanselan.common.ImageBuilder; import org.apache.commons.sanselan.common.bytesource.ByteSource; import org.apache.commons.sanselan.common.mylzw.MyLzwCompressor; import org.apache.commons.sanselan.common.mylzw.MyLzwDecompressor; @@ -732,8 +733,7 @@ public class GifImageParser extends Imag if (gce != null gce.transparency) hasAlpha = true; -BufferedImage result = getBufferedImageFactory(params) -.getColorBufferedImage(width, height, hasAlpha); +ImageBuilder imageBuilder = new ImageBuilder(width, height, hasAlpha); { int colorTable[]; @@ -755,8 +755,6 @@ public class GifImageParser extends Imag int rowsInPass3 = (height + 1) / 4; int rowsInPass4 = (height) / 2; -DataBuffer db = result.getRaster().getDataBuffer(); - for (int row = 0; row height; row++) { int y; @@ -797,13 +795,13 @@ public class GifImageParser extends Imag if (transparentIndex == index) rgb = 0x00; -db.setElem(y * width + x, rgb); +imageBuilder.setRGB(x, y, rgb); } } } -return result; +return imageBuilder.getBufferedImage(); }
svn commit: r1293786 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm: FileInfo.java PnmImageParser.java
Author: damjan Date: Sun Feb 26 08:52:30 2012 New Revision: 1293786 URL: http://svn.apache.org/viewvc?rev=1293786view=rev Log: Use ImageBuilder for PNM files. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/FileInfo.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/PnmImageParser.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/FileInfo.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/FileInfo.java?rev=1293786r1=1293785r2=1293786view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/FileInfo.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/FileInfo.java Sun Feb 26 08:52:30 2012 @@ -16,12 +16,12 @@ */ package org.apache.commons.sanselan.formats.pnm; -import java.awt.image.BufferedImage; import java.awt.image.DataBuffer; import java.io.IOException; import java.io.InputStream; import org.apache.commons.sanselan.ImageFormat; +import org.apache.commons.sanselan.common.ImageBuilder; public abstract class FileInfo { @@ -56,15 +56,14 @@ public abstract class FileInfo // do nothing by default. } -public void readImage(BufferedImage bi, InputStream is) throws IOException +public void readImage(ImageBuilder imageBuilder, InputStream is) throws IOException { // is = new BufferedInputStream(is); // int count = 0; // // try // { -DataBuffer buffer = bi.getRaster().getDataBuffer(); - + if (!RAWBITS) { WhiteSpaceReader wsr = new WhiteSpaceReader(is); @@ -75,7 +74,7 @@ public abstract class FileInfo { int rgb = getRGB(wsr); -buffer.setElem(y * width + x, rgb); +imageBuilder.setRGB(x, y, rgb); // count++; } newline(); @@ -88,7 +87,7 @@ public abstract class FileInfo for (int x = 0; x width; x++) { int rgb = getRGB(is); -buffer.setElem(y * width + x, rgb); +imageBuilder.setRGB(x, y, rgb); // count++; } newline(); Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/PnmImageParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/PnmImageParser.java?rev=1293786r1=1293785r2=1293786view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/PnmImageParser.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/PnmImageParser.java Sun Feb 26 08:52:30 2012 @@ -34,6 +34,7 @@ import org.apache.commons.sanselan.Image import org.apache.commons.sanselan.ImageReadException; import org.apache.commons.sanselan.ImageWriteException; import org.apache.commons.sanselan.common.IImageMetadata; +import org.apache.commons.sanselan.common.ImageBuilder; import org.apache.commons.sanselan.common.bytesource.ByteSource; import org.apache.commons.sanselan.util.Debug; @@ -275,12 +276,10 @@ public class PnmImageParser extends Imag int height = info.height; boolean hasAlpha = false; -BufferedImage result = getBufferedImageFactory(params) -.getColorBufferedImage(width, height, hasAlpha); +ImageBuilder imageBuilder = new ImageBuilder(width, height, hasAlpha); +info.readImage(imageBuilder, is); -info.readImage(result, is); - -return result; +return imageBuilder.getBufferedImage(); } finally { try
svn commit: r1294474 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan: formats/gif/ formats/pnm/ formats/tiff/ palette/
Author: damjan Date: Tue Feb 28 06:06:45 2012 New Revision: 1294474 URL: http://svn.apache.org/viewvc?rev=1294474view=rev Log: Fix some FindBugs problems. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/PbmWriter.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/PgmWriter.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/PpmWriter.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffDirectory.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/palette/MedianCutQuantizer.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java?rev=1294474r1=1294473r2=1294474view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java Tue Feb 28 06:06:45 2012 @@ -284,7 +284,7 @@ public class GifImageParser extends Imag if (formatCompliance != null) formatCompliance .addComment(Unknown Application Extension ( -+ new String(label) + ), completeCode); ++ new String(label, US-ASCII) + ), completeCode); // if (label == new String(ICCRGBG1)) { @@ -565,7 +565,7 @@ public class GifImageParser extends Imag if (block.blockCode == code) { byte bytes[] = ((GenericGifBlock) block).appendSubBlocks(); -result.add(new String(bytes)); +result.add(new String(bytes, US-ASCII)); } } Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/PbmWriter.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/PbmWriter.java?rev=1294474r1=1294473r2=1294474view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/PbmWriter.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/PbmWriter.java Tue Feb 28 06:06:45 2012 @@ -40,10 +40,10 @@ public class PbmWriter extends PnmWriter int width = src.getWidth(); int height = src.getHeight(); -os.write(( + width).getBytes()); +os.write(( + width).getBytes(US-ASCII)); os.write(PNM_SEPARATOR); -os.write(( + height).getBytes()); +os.write(( + height).getBytes(US-ASCII)); os.write(PNM_NEWLINE); int bitcache = 0; @@ -76,7 +76,7 @@ public class PbmWriter extends PnmWriter } } else { -os.write(( + sample).getBytes()); // max component value +os.write(( + sample).getBytes(US-ASCII)); // max component value os.write(PNM_SEPARATOR); } } Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/PgmWriter.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/PgmWriter.java?rev=1294474r1=1294473r2=1294474view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/PgmWriter.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pnm/PgmWriter.java Tue Feb 28 06:06:45 2012 @@ -42,13 +42,13 @@ public class PgmWriter extends PnmWriter int width = src.getWidth(); int height = src.getHeight(); -os.write(( + width).getBytes()); +os.write(( + width).getBytes(US-ASCII)); os.write(PNM_SEPARATOR); -os.write(( + height).getBytes()); +os.write(( + height).getBytes(US-ASCII)); os.write(PNM_SEPARATOR); -os.write(( + 255).getBytes()); // max component value +os.write(( + 255).getBytes(US-ASCII)); // max component value os.write(PNM_NEWLINE); for (int y = 0; y height; y++) @@ -66,7 +66,7 @@ public class PgmWriter extends PnmWriter } else
svn commit: r1294484 - /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIccp.java
Author: damjan Date: Tue Feb 28 06:42:53 2012 New Revision: 1294484 URL: http://svn.apache.org/viewvc?rev=1294484view=rev Log: Some more FindBugs fixes. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIccp.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIccp.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIccp.java?rev=1294484r1=1294483r2=1294484view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIccp.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIccp.java Tue Feb 28 06:42:53 2012 @@ -43,7 +43,7 @@ public class PngChunkIccp extends PngChu throw new ImageReadException(PngChunkIccp: No Profile Name); byte name_bytes[] = new byte[index]; System.arraycopy(bytes, 0, name_bytes, 0, index); -ProfileName = new String(name_bytes); +ProfileName = new String(name_bytes, ISO-8859-1); CompressionMethod = bytes[index + 1];
svn commit: r1294794 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats: png/PngConstants.java png/PngWriter.java psd/PsdConstants.java
Author: damjan Date: Tue Feb 28 19:16:15 2012 New Revision: 1294794 URL: http://svn.apache.org/viewvc?rev=1294794view=rev Log: Do not allow final arrays to be mutated. This completes the changeset for SANSELAN-42 by getting rid of all public static final arrays (at least, as found by FindBugs). Jira issue key: SANSELAN-42 Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/PngConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/PngWriter.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/psd/PsdConstants.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/PngConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/PngConstants.java?rev=1294794r1=1294793r2=1294794view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/PngConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/PngConstants.java Tue Feb 28 19:16:15 2012 @@ -17,6 +17,7 @@ package org.apache.commons.sanselan.formats.png; import org.apache.commons.sanselan.SanselanConstants; +import org.apache.commons.sanselan.common.BinaryConstant; import org.apache.commons.sanselan.common.BinaryFileFunctions; public interface PngConstants extends SanselanConstants @@ -24,28 +25,28 @@ public interface PngConstants extends Sa public static final int COMPRESSION_DEFLATE_INFLATE = 0; -public final static byte[] IHDR_CHUNK_TYPE = new byte[] { 73, 72, 68, 82 }; -public final static byte[] PLTE_CHUNK_TYPE = new byte[] { 80, 76, 84, 69 }; -public final static byte[] IEND_CHUNK_TYPE = new byte[] { 73, 69, 78, 68 }; -public final static byte[] IDAT_CHUNK_TYPE = new byte[] { 73, 68, 65, 84 }; -public final static byte[] iTXt_CHUNK_TYPE = new byte[] { // +public final static BinaryConstant IHDR_CHUNK_TYPE = new BinaryConstant(new byte[] { 73, 72, 68, 82 }); +public final static BinaryConstant PLTE_CHUNK_TYPE = new BinaryConstant(new byte[] { 80, 76, 84, 69 }); +public final static BinaryConstant IEND_CHUNK_TYPE = new BinaryConstant(new byte[] { 73, 69, 78, 68 }); +public final static BinaryConstant IDAT_CHUNK_TYPE = new BinaryConstant(new byte[] { 73, 68, 65, 84 }); +public final static BinaryConstant iTXt_CHUNK_TYPE = new BinaryConstant(new byte[] { // 105, // 84, // 88, // 116, // -}; -public final static byte[] tEXt_CHUNK_TYPE = new byte[] { // +}); +public final static BinaryConstant tEXt_CHUNK_TYPE = new BinaryConstant(new byte[] { // 0x74, // 0x45, // 0x58, // 0x74, // -}; -public final static byte[] zTXt_CHUNK_TYPE = new byte[] { // +}); +public final static BinaryConstant zTXt_CHUNK_TYPE = new BinaryConstant(new byte[] { // 0x7A, // 0x54, // 0x58, // 0x74, // -}; +}); public final static int IEND = BinaryFileFunctions.charsToQuad('I', 'E', 'N', 'D'); @@ -74,8 +75,8 @@ public interface PngConstants extends Sa public final static int iTXt = BinaryFileFunctions.charsToQuad('i', 'T', 'X', 't'); -public static final byte PNG_Signature[] = { -(byte) 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, }; +public static final BinaryConstant PNG_Signature = new BinaryConstant(new byte[]{ +(byte) 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, }); public static final String PARAM_KEY_PNG_BIT_DEPTH = PNG_BIT_DEPTH; public static final String PARAM_KEY_PNG_FORCE_INDEXED_COLOR = PNG_FORCE_INDEXED_COLOR; Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/PngWriter.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/PngWriter.java?rev=1294794r1=1294793r2=1294794view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/PngWriter.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/PngWriter.java Tue Feb 28 19:16:15 2012 @@ -144,7 +144,7 @@ public class PngWriter implements PngCon // Debug.debug(baos, baos.toByteArray()); -writeChunk(os, IHDR_CHUNK_TYPE, baos.toByteArray()); +writeChunk(os, IHDR_CHUNK_TYPE.toByteArray(), baos.toByteArray()); } private void writeChunkiTXt(OutputStream os, PngText.iTXt text) @@ -177,7 +177,7 @@ public class PngWriter implements PngCon
svn commit: r1294807 - in /commons/proper/sanselan/trunk/src: main/java/org/apache/commons/sanselan/common/bytesource/ main/java/org/apache/commons/sanselan/formats/bmp/ main/java/org/apache/commons/s
Author: damjan Date: Tue Feb 28 20:06:34 2012 New Revision: 1294807 URL: http://svn.apache.org/viewvc?rev=1294807view=rev Log: Fix many ByteSource.getInputStream() leaks, where the stream returned wasn't closed in a finally block. Jira issue key: SANSELAN-63 Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSource.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pcx/PcxImageParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/psd/PsdImageParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/icc/IccProfileParser.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/common/bytesource/ByteSourceDataTest.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSource.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSource.java?rev=1294807r1=1294806r2=1294807view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSource.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/bytesource/ByteSource.java Tue Feb 28 20:06:34 2012 @@ -32,10 +32,19 @@ public abstract class ByteSource extends public final InputStream getInputStream(int start) throws IOException { -InputStream is = getInputStream(); - -skipBytes(is, start); - +InputStream is = null; +boolean succeeded = false; +try { +is = getInputStream(); +skipBytes(is, start); +succeeded = true; +} finally { +if (!succeeded) { +if (is != null) { +is.close(); +} +} +} return is; } Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java?rev=1294807r1=1294806r2=1294807view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java Tue Feb 28 20:06:34 2012 @@ -593,8 +593,19 @@ public class BmpImageParser extends Imag throw new ImageReadException(Unknown parameter: + firstKey); } -ImageContents ic = readImageContents(byteSource.getInputStream(), -FormatCompliance.getDefault(), verbose); +InputStream is = null; +ImageContents ic = null; +try { +is = byteSource.getInputStream(); +ic = readImageContents(is, FormatCompliance.getDefault(), verbose); +} finally { +if (is != null) { +try { +is.close(); +} catch (IOException ignore) { +} +} +} if (ic == null) throw new ImageReadException(Couldn't read BMP Data); @@ -671,7 +682,18 @@ public class BmpImageParser extends Imag FormatCompliance result = new FormatCompliance(byteSource .getDescription()); -readImageContents(byteSource.getInputStream(), result, verbose); +InputStream is = null; +try { +is = byteSource.getInputStream(); +readImageContents(is, result, verbose); +} finally { +if (is != null) { +try { +is.close(); +} catch (IOException ignore) { +} +} +} return result; } @@ -679,7 +701,18 @@ public class BmpImageParser extends Imag public BufferedImage getBufferedImage(ByteSource byteSource, Map params) throws ImageReadException, IOException { -return getBufferedImage(byteSource.getInputStream(), params); +InputStream is = null; +try { +is = byteSource.getInputStream(); +return getBufferedImage(is, params); +} finally { +if (is != null) { +try { +is.close(); +} catch (IOException ignore) { +} +} +} } public BufferedImage getBufferedImage(InputStream inputStream, Map params) Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons
svn commit: r1294964 - in /commons/proper/sanselan/trunk: ./ src/main/java/org/apache/commons/sanselan/formats/xpm/ src/main/resources/ src/main/resources/org/ src/main/resources/org/apache/ src/main/
Author: damjan Date: Wed Feb 29 03:52:27 2012 New Revision: 1294964 URL: http://svn.apache.org/viewvc?rev=1294964view=rev Log: Added support for symbolic color names in XPM files. Imported rgb.txt from the X.org project to provide these, and added its MIT license to LICENSE.txt. Fixed some bugs in rgb.txt parsing. Added a test image that uses a symbolic color. Also updated website's format support. Added: commons/proper/sanselan/trunk/src/main/resources/ commons/proper/sanselan/trunk/src/main/resources/org/ commons/proper/sanselan/trunk/src/main/resources/org/apache/ commons/proper/sanselan/trunk/src/main/resources/org/apache/commons/ commons/proper/sanselan/trunk/src/main/resources/org/apache/commons/sanselan/ commons/proper/sanselan/trunk/src/main/resources/org/apache/commons/sanselan/formats/ commons/proper/sanselan/trunk/src/main/resources/org/apache/commons/sanselan/formats/xpm/ commons/proper/sanselan/trunk/src/main/resources/org/apache/commons/sanselan/formats/xpm/rgb.txt (with props) commons/proper/sanselan/trunk/src/test/data/images/xpm/1/symbolic.xpm Modified: commons/proper/sanselan/trunk/LICENSE.txt commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/xpm/XpmImageParser.java commons/proper/sanselan/trunk/src/site/xdoc/formatsupport.xml commons/proper/sanselan/trunk/src/test/data/images/xpm/1/info.txt Modified: commons/proper/sanselan/trunk/LICENSE.txt URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/LICENSE.txt?rev=1294964r1=1294963r2=1294964view=diff == --- commons/proper/sanselan/trunk/LICENSE.txt (original) +++ commons/proper/sanselan/trunk/LICENSE.txt Wed Feb 29 03:52:27 2012 @@ -200,3 +200,57 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + + +EXTERNAL COMPONENTS + +Apache Commons Sanselan includes a number of components with separate copyright +notices and license terms. Your use of these components is subject to the terms +and conditions of the following licenses. + +rgb.txt comes from the X.org project and is under the following licenses: + + Copyright 1985, 1989, 1998 The Open Group + + Permission to use, copy, modify, distribute, and sell this software and its + documentation for any purpose is hereby granted without fee, provided that + the above copyright notice appear in all copies and that both that + copyright notice and this permission notice appear in supporting + documentation. + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR + OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of The Open Group shall + not be used in advertising or otherwise to promote the sale, use or + other dealings in this Software without prior written authorization + from The Open Group. + + Copyright (c) 1994, 2008, Oracle and/or its affiliates. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the Software), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/xpm/XpmImageParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/xpm/XpmImageParser.java?rev
svn commit: r1296636 - /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java
Author: damjan Date: Sat Mar 3 15:20:54 2012 New Revision: 1296636 URL: http://svn.apache.org/viewvc?rev=1296636view=rev Log: Allow RowsPerStrip to be optional, and treat it as infinity when it is. Submitted by: Piyush Kapoor pkapoor at adobe dot com Jira issue key: SANSELAN-65 Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java?rev=1296636r1=1296635r2=1296636view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java Sat Mar 3 15:20:54 2012 @@ -478,9 +478,18 @@ public class TiffReader extends BinaryFi { TiffField rowsPerStripField = directory .findField(TiffTagConstants.TIFF_TAG_ROWS_PER_STRIP); -if (null == rowsPerStripField) -throw new ImageReadException(Can't find rows per strip field.); -int rowsPerStrip = rowsPerStripField.getIntValue(); +int rowsPerStrip ; + +if (null != rowsPerStripField) { +rowsPerStrip = rowsPerStripField.getIntValue(); +} else { +TiffField imageHeight = directory.findField(TiffTagConstants.TIFF_TAG_IMAGE_LENGTH); +/** + * if rows per strip not present then rowsPerStrip + * is equal to imageLength or an infinity value; + */ +rowsPerStrip = imageHeight.getIntValue(); +} return new TiffImageData.Strips(data, rowsPerStrip); } else
svn commit: r1296641 - /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java
Author: damjan Date: Sat Mar 3 15:35:29 2012 New Revision: 1296641 URL: http://svn.apache.org/viewvc?rev=1296641view=rev Log: Revert the previous patch which was committed by accident. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java?rev=1296641r1=1296640r2=1296641view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java Sat Mar 3 15:35:29 2012 @@ -478,18 +478,9 @@ public class TiffReader extends BinaryFi { TiffField rowsPerStripField = directory .findField(TiffTagConstants.TIFF_TAG_ROWS_PER_STRIP); -int rowsPerStrip ; - -if (null != rowsPerStripField) { -rowsPerStrip = rowsPerStripField.getIntValue(); -} else { -TiffField imageHeight = directory.findField(TiffTagConstants.TIFF_TAG_IMAGE_LENGTH); -/** - * if rows per strip not present then rowsPerStrip - * is equal to imageLength or an infinity value; - */ -rowsPerStrip = imageHeight.getIntValue(); -} +if (null == rowsPerStripField) +throw new ImageReadException(Can't find rows per strip field.); +int rowsPerStrip = rowsPerStripField.getIntValue(); return new TiffImageData.Strips(data, rowsPerStrip); } else
svn commit: r1297330 - /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java
Author: damjan Date: Tue Mar 6 02:59:06 2012 New Revision: 1297330 URL: http://svn.apache.org/viewvc?rev=1297330view=rev Log: TIFF RowsPerStrip can be absent, and means infinity. Submittted by: Piyush Kapoor pkapoor at adobe dot com Jira issue key: SANSELAN-65 Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java?rev=1297330r1=1297329r2=1297330view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffReader.java Tue Mar 6 02:59:06 2012 @@ -478,9 +478,18 @@ public class TiffReader extends BinaryFi { TiffField rowsPerStripField = directory .findField(TiffTagConstants.TIFF_TAG_ROWS_PER_STRIP); -if (null == rowsPerStripField) -throw new ImageReadException(Can't find rows per strip field.); -int rowsPerStrip = rowsPerStripField.getIntValue(); +int rowsPerStrip ; + +if (null != rowsPerStripField) { +rowsPerStrip = rowsPerStripField.getIntValue(); +} else { +TiffField imageHeight = directory.findField(TiffTagConstants.TIFF_TAG_IMAGE_LENGTH); +/** + * if rows per strip not present then rowsPerStrip + * is equal to imageLength or an infinity value; + */ +rowsPerStrip = imageHeight.getIntValue(); +} return new TiffImageData.Strips(data, rowsPerStrip); } else
svn commit: r1301892 - in /commons/proper/sanselan/trunk: ./ src/main/java/org/apache/commons/sanselan/ src/main/java/org/apache/commons/sanselan/formats/bmp/ src/main/java/org/apache/commons/sanselan
Author: damjan Date: Sat Mar 17 08:57:55 2012 New Revision: 1301892 URL: http://svn.apache.org/viewvc?rev=1301892view=rev Log: Allow writing pixel density (DPI) into images. Jira issue key: SANSELAN-67 Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/PixelDensity.java (with props) Modified: commons/proper/sanselan/trunk/pom.xml commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/SanselanConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pcx/PcxImageParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/pcx/PcxWriter.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/PngConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/PngWriter.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterBase.java Modified: commons/proper/sanselan/trunk/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/pom.xml?rev=1301892r1=1301891r2=1301892view=diff == --- commons/proper/sanselan/trunk/pom.xml (original) +++ commons/proper/sanselan/trunk/pom.xml Sat Mar 17 08:57:55 2012 @@ -118,6 +118,60 @@ /plugin /plugins +pluginManagement + plugins + !--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-- + plugin + groupIdorg.eclipse.m2e/groupId + artifactIdlifecycle-mapping/artifactId + version1.0.0/version + configuration + lifecycleMappingMetadata + pluginExecutions + pluginExecution + pluginExecutionFilter + groupId + org.apache.maven.plugins + /groupId + artifactId + maven-antrun-plugin + /artifactId + versionRange[1.6,)/versionRange + goals + goalrun/goal + /goals + /pluginExecutionFilter + action + execute + runOnIncrementalfalse/runOnIncremental +/execute + /action + /pluginExecution + pluginExecution + pluginExecutionFilter + groupIdorg.apache.felix/groupId + artifactId + maven-bundle-plugin + /artifactId + versionRange + [2.3.5,) + /versionRange + goals + goalmanifest/goal + /goals + /pluginExecutionFilter + action + execute + runOnIncrementalfalse/runOnIncremental + /execute + /action + /pluginExecution
svn commit: r1301903 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan: ./ common/ formats/tiff/ formats/tiff/datareaders/
Author: damjan Date: Sat Mar 17 09:42:36 2012 New Revision: 1301903 URL: http://svn.apache.org/viewvc?rev=1301903view=rev Log: Make BitInputStream sensitive to byte order. Allows 48 BPP TIFF files to load. Jira issue key: SANSELAN-66 Submitted by: Piyush Kapoor pkapoor at adobe dot com Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/SanselanConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryFileParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BitInputStream.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageData.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderTiled.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/SanselanConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/SanselanConstants.java?rev=1301903r1=1301902r2=1301903view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/SanselanConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/SanselanConstants.java Sat Mar 17 09:42:36 2012 @@ -123,4 +123,12 @@ public interface SanselanConstants * Valid values: PixelDensity */ public static final String PARAM_KEY_PIXEL_DENSITY = PIXEL_DENSITY; + +/** + * Parameter key. Used in Tiff operations to use the byte order + * of the Tiff image. + * p + * Valid values: any Integer + */ +public static final String BYTE_ORDER = BYTE_ORDER; } Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryFileParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryFileParser.java?rev=1301903r1=1301902r2=1301903view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryFileParser.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BinaryFileParser.java Sat Mar 17 09:42:36 2012 @@ -57,7 +57,7 @@ public class BinaryFileParser extends Bi this.byteOrder = byteOrder; } -protected int getByteOrder() +public int getByteOrder() { return byteOrder; } Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BitInputStream.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BitInputStream.java?rev=1301903r1=1301902r2=1301903view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BitInputStream.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/BitInputStream.java Sat Mar 17 09:42:36 2012 @@ -21,13 +21,14 @@ import java.io.InputStream; public class BitInputStream extends InputStream implements BinaryConstants { -// TODO should be byte order conscious, ie TIFF for reading -// samples size8 - shuoldn't that effect their order within byte? + private final InputStream is; +private final int byteOrder; -public BitInputStream(InputStream is) +public BitInputStream(InputStream is, int byteOrder) { this.is = is; +this.byteOrder = byteOrder; //super(is); } @@ -88,25 +89,53 @@ public class BitInputStream extends Inpu bytes_read++; return is.read(); } + +/** + * Taking default order of the Tiff to be + * Little Endian and reversing the bytes in the end + * if its Big Endian.This is done because majority (may be all) + * of the files will be of Little Endian. + */ +if(byteOrder == BYTE_ORDER_BIG_ENDIAN) { +if (count == 16) +{ +bytes_read += 2; +return (is.read() 8) | (is.read() 0); +} -if (count == 16) -{ -bytes_read += 2; -return (is.read() 8) | (is.read() 0); -} - -if (count == 24) -{ -bytes_read += 3; -return (is.read() 16) | (is.read() 8) | (is.read() 0); -} +if (count == 24
svn commit: r1301904 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan: SanselanConstants.java formats/tiff/TiffDirectory.java formats/tiff/TiffImageMetadata.java formats/t
Author: damjan Date: Sat Mar 17 09:53:14 2012 New Revision: 1301904 URL: http://svn.apache.org/viewvc?rev=1301904view=rev Log: Eliminate the byte order parameter. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/SanselanConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffDirectory.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/SanselanConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/SanselanConstants.java?rev=1301904r1=1301903r2=1301904view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/SanselanConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/SanselanConstants.java Sat Mar 17 09:53:14 2012 @@ -123,12 +123,4 @@ public interface SanselanConstants * Valid values: PixelDensity */ public static final String PARAM_KEY_PIXEL_DENSITY = PIXEL_DENSITY; - -/** - * Parameter key. Used in Tiff operations to use the byte order - * of the Tiff image. - * p - * Valid values: any Integer - */ -public static final String BYTE_ORDER = BYTE_ORDER; } Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffDirectory.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffDirectory.java?rev=1301904r1=1301903r2=1301904view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffDirectory.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffDirectory.java Sat Mar 17 09:53:14 2012 @@ -152,19 +152,19 @@ public class TiffDirectory extends TiffE return false; } -public BufferedImage getTiffImage() throws ImageReadException, IOException +public BufferedImage getTiffImage(int byteOrder) throws ImageReadException, IOException { Map params = null; -return getTiffImage(params); +return getTiffImage(byteOrder, params); } -public BufferedImage getTiffImage(Map params) throws ImageReadException, +public BufferedImage getTiffImage(int byteOrder, Map params) throws ImageReadException, IOException { if (null == tiffImageData) return null; -return new TiffImageParser().getBufferedImage(this, params); +return new TiffImageParser().getBufferedImage(this, byteOrder, params); } public TiffField findField(TagInfo tag) throws ImageReadException Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java?rev=1301904r1=1301903r2=1301904view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java Sat Mar 17 09:53:14 2012 @@ -87,11 +87,13 @@ public class TiffImageMetadata extends I public final int type; private final TiffDirectory directory; +private final int byteOrder; -public Directory(final TiffDirectory directory) +public Directory(int byteOrder, final TiffDirectory directory) { this.type = directory.type; this.directory = directory; +this.byteOrder = byteOrder; } public void add(TiffField entry) @@ -102,7 +104,7 @@ public class TiffImageMetadata extends I public BufferedImage getThumbnail() throws ImageReadException, IOException { -return directory.getTiffImage(); +return directory.getTiffImage(byteOrder); } public TiffImageData getTiffImageData() Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java?rev=1301904r1=1301903r2=1301904view=diff
svn commit: r1302079 - in /commons/proper/sanselan/trunk/src: main/java/org/apache/commons/sanselan/formats/tiff/constants/ main/java/org/apache/commons/sanselan/formats/tiff/datareaders/ test/java/or
Author: damjan Date: Sun Mar 18 07:26:44 2012 New Revision: 1302079 URL: http://svn.apache.org/viewvc?rev=1302079view=rev Log: Start refactoring the EXIF tags. Move TIFF tags to their own class. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/jpeg/exif/AsciiFieldTest.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java?rev=1302079r1=1302078r2=1302079view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java Sun Mar 18 07:26:44 2012 @@ -66,101 +66,6 @@ public interface ExifTagConstants public static final TagInfoAscii EXIF_TAG_PROCESSING_SOFTWARE = new TagInfoAscii( Processing Software, 0x000b, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); -public static final TagInfoLong EXIF_TAG_SUBFILE_TYPE = new TagInfoLong( -Subfile Type, 0x00fe, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); -public static final int SUBFILE_TYPE_VALUE_FULL_RESOLUTION_IMAGE = 0; -public static final int SUBFILE_TYPE_VALUE_REDUCED_RESOLUTION_IMAGE = 1; -public static final int SUBFILE_TYPE_VALUE_SINGLE_PAGE_OF_MULTI_PAGE_IMAGE = 2; -public static final int SUBFILE_TYPE_VALUE_SINGLE_PAGE_OF_MULTI_PAGE_REDUCED_RESOLUTION_IMAGE = 3; -public static final int SUBFILE_TYPE_VALUE_TRANSPARENCY_MASK = 4; -public static final int SUBFILE_TYPE_VALUE_TRANSPARENCY_MASK_OF_REDUCED_RESOLUTION_IMAGE = 5; -public static final int SUBFILE_TYPE_VALUE_TRANSPARENCY_MASK_OF_MULTI_PAGE_IMAGE = 6; -public static final int SUBFILE_TYPE_VALUE_TRANSPARENCY_MASK_OF_REDUCED_RESOLUTION_MULTI_PAGE_IMAGE = 7; -public static final TagInfoShort EXIF_TAG_OLD_SUBFILE_TYPE = new TagInfoShort( -Old Subfile Type, 0x00ff, 1, -TiffDirectoryType.EXIF_DIRECTORY_IFD0); -public static final int OLD_SUBFILE_TYPE_VALUE_FULL_RESOLUTION_IMAGE = 1; -public static final int OLD_SUBFILE_TYPE_VALUE_REDUCED_RESOLUTION_IMAGE = 2; -public static final int OLD_SUBFILE_TYPE_VALUE_SINGLE_PAGE_OF_MULTI_PAGE_IMAGE = 3; -public static final TagInfoLong EXIF_TAG_IMAGE_WIDTH_IFD0 = new TagInfoLong( -Image Width, 0x0100, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); -public static final TagInfoLong EXIF_TAG_IMAGE_HEIGHT_IFD0 = new TagInfoLong( -Image Height, 0x0101, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); -public static final TagInfoShort EXIF_TAG_BITS_PER_SAMPLE = new TagInfoShort( -Bits Per Sample, 0x0102, -1, -TiffDirectoryType.EXIF_DIRECTORY_IFD0); -public static final TagInfoShort EXIF_TAG_COMPRESSION = new TagInfoShort( -Compression, 0x0103, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); -public static final int COMPRESSION_VALUE_UNCOMPRESSED = 1; -public static final int COMPRESSION_VALUE_CCITT_1D = 2; -public static final int COMPRESSION_VALUE_T4_GROUP_3_FAX = 3; -public static final int COMPRESSION_VALUE_T6_GROUP_4_FAX = 4; -public static final int COMPRESSION_VALUE_LZW = 5; -public static final int COMPRESSION_VALUE_JPEG_OLD_STYLE = 6; -public static final int COMPRESSION_VALUE_JPEG = 7; -public static final int COMPRESSION_VALUE_ADOBE_DEFLATE = 8; -public static final int COMPRESSION_VALUE_JBIG_B_AND_W = 9; -public static final int COMPRESSION_VALUE_JBIG_COLOR = 10; -public static final int COMPRESSION_VALUE_NEXT = 32766; -public static final int COMPRESSION_VALUE_EPSON_ERF_COMPRESSED = 32769; -public static final int COMPRESSION_VALUE_CCIRLEW = 32771; -public static final int COMPRESSION_VALUE_PACK_BITS = 32773; -public static final int COMPRESSION_VALUE_THUNDERSCAN = 32809; -public static final int COMPRESSION_VALUE_IT8CTPAD = 32895; -public static final int COMPRESSION_VALUE_IT8LW = 32896; -public static final int COMPRESSION_VALUE_IT8MP = 32897; -public static final int COMPRESSION_VALUE_IT8BL = 32898; -public static final int COMPRESSION_VALUE_PIXAR_FILM = 32908; -public static final int COMPRESSION_VALUE_PIXAR_LOG = 32909; -public static final int COMPRESSION_VALUE_DEFLATE = 32946
svn commit: r1302095 - in /commons/proper/sanselan/trunk/src: main/java/org/apache/commons/sanselan/formats/tiff/constants/ test/java/org/apache/commons/sanselan/formats/tiff/
Author: damjan Date: Sun Mar 18 08:34:37 2012 New Revision: 1302095 URL: http://svn.apache.org/viewvc?rev=1302095view=rev Log: Factor out more TIFF tags into separate classes. Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AdobePageMaker6TagConstants.java (with props) commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffClassFTagConstants.java (with props) Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffTagConstants.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AdobePageMaker6TagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AdobePageMaker6TagConstants.java?rev=1302095view=auto == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AdobePageMaker6TagConstants.java (added) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AdobePageMaker6TagConstants.java Sun Mar 18 08:34:37 2012 @@ -0,0 +1,62 @@ +package org.apache.commons.sanselan.formats.tiff.constants; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo; +import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii; +import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByte; +import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoLong; +import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort; + +/** + * TIFF specification supplement 1 + * BR + * Enhancements for Adobe PageMaker(R) 6.0 software + * BR + * http://partners.adobe.com/public/developer/en/tiff/TIFFPM6.pdf + */ +public interface AdobePageMaker6TagConstants extends TiffFieldTypeConstants { +public static final TagInfoLong TIFF_TAG_SUB_IFD = new TagInfoLong( +Sub IFD, 0x014a, -1, +TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN, true); + +public static final TagInfoByte TIFF_TAG_CLIP_PATH = new TagInfoByte( +Clip Path, 0x0157, -1, +TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); + +public static final TagInfoLong TIFF_TAG_XCLIP_PATH_UNITS = new TagInfoLong( +XClip Path Units, 0x0158, 1, +TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); + +public static final TagInfoLong TIFF_TAG_YCLIP_PATH_UNITS = new TagInfoLong( +YClip Path Units, 0x0159, 1, +TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); + +public static final TagInfoShort TIFF_TAG_INDEXED = new TagInfoShort( +Indexed, 0x015a, 1, +TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); +public static final int INDEXED_VALUE_NOT_INDEXED = 0; +public static final int INDEXED_VALUE_INDEXED = 1; + +public static final TagInfoShort TIFF_TAG_OPIPROXY = new TagInfoShort( +OPIProxy, 0x015f, 1, +TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); +public static final int OPIPROXY_VALUE_HIGHER_RESOLUTION_IMAGE_DOES_NOT_EXIST = 0; +public static final int OPIPROXY_VALUE_HIGHER_RESOLUTION_IMAGE_EXISTS = 1; + +public static final TagInfoAscii TIFF_TAG_IMAGE_ID = new TagInfoAscii( +Image ID, 0x800d, -1, +TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); + +public static final ListTagInfo ALL_ADOBE_PAGEMAKER_6_TAG_CONSTANTS = +Collections.unmodifiableList(Arrays.asList( +TIFF_TAG_SUB_IFD, +TIFF_TAG_CLIP_PATH, +TIFF_TAG_XCLIP_PATH_UNITS, +TIFF_TAG_YCLIP_PATH_UNITS, +TIFF_TAG_INDEXED, +TIFF_TAG_OPIPROXY, +TIFF_TAG_IMAGE_ID)); +} Propchange: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AdobePageMaker6TagConstants.java -- svn:eol-style = native Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java?rev=1302095r1=1302094r2=1302095view=diff
svn commit: r1302103 - in /commons/proper/sanselan/trunk/src: main/java/org/apache/commons/sanselan/formats/tiff/constants/ test/java/org/apache/commons/sanselan/formats/tiff/
Author: damjan Date: Sun Mar 18 09:25:59 2012 New Revision: 1302103 URL: http://svn.apache.org/viewvc?rev=1302103view=rev Log: Factor out RFC 2301 tags and TIFF4 tags. Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/Rfc2301TagConstants.java (with props) commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/Tiff4TagConstants.java (with props) Removed: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffClassFTagConstants.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffTagConstants.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java?rev=1302103r1=1302102r2=1302103view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java Sun Mar 18 09:25:59 2012 @@ -27,9 +27,11 @@ public interface AllTagConstants SanselanConstants { public static final ListTagInfo ALL_TAGS = Collections.unmodifiableList( -TagConstantsUtils.mergeTagLists(TiffTagConstants.ALL_TIFF_TAGS, +TagConstantsUtils.mergeTagLists( +Tiff4TagConstants.ALL_TIFF_4_TAGS, +TiffTagConstants.ALL_TIFF_TAGS, ExifTagConstants.ALL_EXIF_TAGS, -TiffClassFTagConstants.ALL_TIFF_CLASS_F_TAGS, +Rfc2301TagConstants.ALL_RFC_2301_TAGS, AdobePageMaker6TagConstants.ALL_ADOBE_PAGEMAKER_6_TAG_CONSTANTS, GpsTagConstants.ALL_GPS_TAGS)); Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java?rev=1302103r1=1302102r2=1302103view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java Sun Mar 18 09:25:59 2012 @@ -83,38 +83,8 @@ public interface ExifTagConstants public static final TagInfoLong EXIF_TAG_JPG_FROM_RAW_LENGTH_SUB_IFD2 = new TagInfoLong( Jpg From Raw Length, 0x0117, 1, TiffDirectoryType.EXIF_DIRECTORY_SUB_IFD2); -public static final TagInfoShort EXIF_TAG_COLOR_RESPONSE_UNIT = new TagInfoShort( -Color Response Unit, 0x012c, 1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final TagInfoUndefined EXIF_TAG_JPEGTABLES = new TagInfoUndefined(JPEGTables, 0x015b, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final TagInfoLong EXIF_TAG_GLOBAL_PARAMETERS_IFD = new TagInfoLong( -Global Parameters IFD, 0x0190, 1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN, true); -public static final TagInfoLong EXIF_TAG_PROFILE_TYPE = new TagInfoLong( -Profile Type, 0x0191, 1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final int PROFILE_TYPE_VALUE_UNSPECIFIED = 0; -public static final int PROFILE_TYPE_VALUE_GROUP_3_FAX = 1; -public static final TagInfoByte EXIF_TAG_FAX_PROFILE = new TagInfoByte( -Fax Profile, 0x0192, 1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final int FAX_PROFILE_VALUE_UNKNOWN = 0; -public static final int FAX_PROFILE_VALUE_MINIMAL_B_AND_W_LOSSLESS_S = 1; -public static final int FAX_PROFILE_VALUE_EXTENDED_B_AND_W_LOSSLESS_F = 2; -public static final int FAX_PROFILE_VALUE_LOSSLESS_JBIG_B_AND_W_J = 3; -public static final int FAX_PROFILE_VALUE_LOSSY_COLOR_AND_GRAYSCALE_C = 4; -public static final int FAX_PROFILE_VALUE_LOSSLESS_COLOR_AND_GRAYSCALE_L = 5; -public static final int FAX_PROFILE_VALUE_MIXED_RASTER_CONTENT_M = 6; -public static final
svn commit: r1302275 - in /commons/proper/sanselan/trunk/src: main/java/org/apache/commons/sanselan/formats/tiff/constants/ test/java/org/apache/commons/sanselan/formats/tiff/
Author: damjan Date: Mon Mar 19 05:45:50 2012 New Revision: 1302275 URL: http://svn.apache.org/viewvc?rev=1302275view=rev Log: Factor out Wang, Microsoft and DCF tags. Update RFC 2301 tags. Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DcfTagConstants.java (with props) commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/MicrosoftTagConstants.java (with props) commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/WangTagConstants.java (with props) Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/Rfc2301TagConstants.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java?rev=1302275r1=1302274r2=1302275view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java Mon Mar 19 05:45:50 2012 @@ -28,11 +28,13 @@ public interface AllTagConstants { public static final ListTagInfo ALL_TAGS = Collections.unmodifiableList( TagConstantsUtils.mergeTagLists( -Tiff4TagConstants.ALL_TIFF_4_TAGS, -TiffTagConstants.ALL_TIFF_TAGS, + AdobePageMaker6TagConstants.ALL_ADOBE_PAGEMAKER_6_TAG_CONSTANTS, +DcfTagConstants.ALL_DCF_TAGS, ExifTagConstants.ALL_EXIF_TAGS, +GpsTagConstants.ALL_GPS_TAGS, +MicrosoftTagConstants.ALL_MICROSOFT_TAGS, Rfc2301TagConstants.ALL_RFC_2301_TAGS, - AdobePageMaker6TagConstants.ALL_ADOBE_PAGEMAKER_6_TAG_CONSTANTS, -GpsTagConstants.ALL_GPS_TAGS)); - +Tiff4TagConstants.ALL_TIFF_4_TAGS, +TiffTagConstants.ALL_TIFF_TAGS, +WangTagConstants.ALL_WANG_TAGS)); } \ No newline at end of file Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DcfTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DcfTagConstants.java?rev=1302275view=auto == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DcfTagConstants.java (added) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DcfTagConstants.java Mon Mar 19 05:45:50 2012 @@ -0,0 +1,42 @@ +package org.apache.commons.sanselan.formats.tiff.constants; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo; +import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii; +import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort; +import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShortOrLong; + +/** + * Design rule for Camera Filesystem + * BR + * http://www.exif.org/dcf.PDF + */ +public interface DcfTagConstants extends TiffFieldTypeConstants { +public static final TagInfoAscii EXIF_TAG_RELATED_IMAGE_FILE_FORMAT = new TagInfoAscii( +Related Image File Format, 0x1000, -1, +TiffDirectoryType.EXIF_DIRECTORY_INTEROP_IFD); + +public static final TagInfoShortOrLong EXIF_TAG_RELATED_IMAGE_WIDTH = new TagInfoShortOrLong( +Related Image Width, 0x1001, 1, +TiffDirectoryType.EXIF_DIRECTORY_INTEROP_IFD); + +public static final TagInfoShortOrLong EXIF_TAG_RELATED_IMAGE_LENGTH = new TagInfoShortOrLong( +Related Image Length, 0x1002, 1, +TiffDirectoryType.EXIF_DIRECTORY_INTEROP_IFD); + +public static final TagInfoShort EXIF_TAG_COLOR_SPACE = new TagInfoShort( +Color Space, 0xa001, 1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); +public static final int COLOR_SPACE_VALUE_SRGB = 1; +public static final int COLOR_SPACE_VALUE_ADOBE_RGB = 2; +public static final int
svn commit: r1302635 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants: AllTagConstants.java ExifTagConstants.java HylaFaxTagConstants.java Microsoft
Author: damjan Date: Mon Mar 19 20:15:20 2012 New Revision: 1302635 URL: http://svn.apache.org/viewvc?rev=1302635view=rev Log: Factor out Microsoft and HylaFax tags. Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/HylaFaxTagConstants.java (with props) Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/MicrosoftTagConstants.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java?rev=1302635r1=1302634r2=1302635view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java Mon Mar 19 20:15:20 2012 @@ -32,9 +32,10 @@ public interface AllTagConstants DcfTagConstants.ALL_DCF_TAGS, ExifTagConstants.ALL_EXIF_TAGS, GpsTagConstants.ALL_GPS_TAGS, +HylaFaxTagConstants.ALL_HYLAFAX_TAGS, MicrosoftTagConstants.ALL_MICROSOFT_TAGS, Rfc2301TagConstants.ALL_RFC_2301_TAGS, Tiff4TagConstants.ALL_TIFF_4_TAGS, TiffTagConstants.ALL_TIFF_TAGS, WangTagConstants.ALL_WANG_TAGS)); -} \ No newline at end of file +} Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java?rev=1302635r1=1302634r2=1302635view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java Mon Mar 19 20:15:20 2012 @@ -277,15 +277,6 @@ public interface ExifTagConstants public static final TagInfoShort EXIF_TAG_SELF_TIMER_MODE = new TagInfoShort( Self Timer Mode, 0x882b, 1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); -public static final TagInfoLong EXIF_TAG_FAX_RECV_PARAMS = new TagInfoLong( -Fax Recv Params, 0x885c, 1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final TagInfoAscii EXIF_TAG_FAX_SUB_ADDRESS = new TagInfoAscii( -Fax Sub Address, 0x885d, -1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final TagInfoLong EXIF_TAG_FAX_RECV_TIME = new TagInfoLong( -Fax Recv Time, 0x885e, 1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final TagInfoLong EXIF_TAG_LEAF_SUB_IFD = new TagInfoLong( Leaf Sub IFD, 0x888a, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); @@ -456,16 +447,6 @@ public interface ExifTagConstants public static final TagInfoUndefined EXIF_TAG_IMAGE_SOURCE_DATA = new TagInfoUndefined( Image Source Data, 0x935c, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); -public static final TagInfoXpString EXIF_TAG_XPTITLE = new TagInfoXpString(XPTitle, -0x9c9b, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); -public static final TagInfoXpString EXIF_TAG_XPCOMMENT = new TagInfoXpString(XPComment, -0x9c9c, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); -public static final TagInfoXpString EXIF_TAG_XPAUTHOR = new TagInfoXpString(XPAuthor, -0x9c9d, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); -public static final TagInfoXpString EXIF_TAG_XPKEYWORDS = new TagInfoXpString(XPKeywords, -0x9c9e, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); -public static final TagInfoXpString EXIF_TAG_XPSUBJECT = new TagInfoXpString(XPSubject, -0x9c9f, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); public static final TagInfoUndefined EXIF_TAG_FLASHPIX_VERSION = new TagInfoUndefined( Flashpix Version, 0xa000, 1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); @@ -1023,8 +1004,7 @@ public interface ExifTagConstants EXIF_TAG_SPECTRAL_SENSITIVITY, EXIF_TAG_GPSINFO, EXIF_TAG_ISO
svn commit: r1303319 - in /commons/proper/sanselan/trunk/src: main/java/org/apache/commons/sanselan/formats/tiff/constants/ test/java/org/apache/commons/sanselan/formats/tiff/
Author: damjan Date: Wed Mar 21 09:10:56 2012 New Revision: 1303319 URL: http://svn.apache.org/viewvc?rev=1303319view=rev Log: Factor out Molecular Dynamics GEL tags. Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/MolecularDynamicsGelTagConstants.java (with props) Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java?rev=1303319r1=1303318r2=1303319view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java Wed Mar 21 09:10:56 2012 @@ -28,6 +28,7 @@ public interface AllTagConstants extends ExifTagConstants, GpsTagConstants, HylaFaxTagConstants, +MolecularDynamicsGelTagConstants, MicrosoftTagConstants, Rfc2301TagConstants, Tiff4TagConstants, @@ -43,6 +44,7 @@ public interface AllTagConstants extends ExifTagConstants.ALL_EXIF_TAGS, GpsTagConstants.ALL_GPS_TAGS, HylaFaxTagConstants.ALL_HYLAFAX_TAGS, + MolecularDynamicsGelTagConstants.ALL_MOLECULAR_DYNAMICS_GEL_TAGS, MicrosoftTagConstants.ALL_MICROSOFT_TAGS, Rfc2301TagConstants.ALL_RFC_2301_TAGS, Tiff4TagConstants.ALL_TIFF_4_TAGS, Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java?rev=1303319r1=1303318r2=1303319view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java Wed Mar 21 09:10:56 2012 @@ -127,28 +127,6 @@ public interface ExifTagConstants public static final TagInfoRational EXIF_TAG_FNUMBER = new TagInfoRational( FNumber, 0x829d, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); -public static final TagInfoLong EXIF_TAG_MDFILE_TAG = new TagInfoLong(MDFile Tag, -0x82a5, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final TagInfoRational EXIF_TAG_MDSCALE_PIXEL = new TagInfoRational( -MDScale Pixel, 0x82a6, 1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final TagInfoShort EXIF_TAG_MDCOLOR_TABLE = new TagInfoShort( -MDColor Table, 0x82a7, -1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final TagInfoAscii EXIF_TAG_MDLAB_NAME = new TagInfoAscii(MDLab Name, -0x82a8, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final TagInfoAscii EXIF_TAG_MDSAMPLE_INFO = new TagInfoAscii( -MDSample Info, 0x82a9, -1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final TagInfoAscii EXIF_TAG_MDPREP_DATE = new TagInfoAscii( -MDPrep Date, 0x82aa, -1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final TagInfoAscii EXIF_TAG_MDPREP_TIME = new TagInfoAscii( -MDPrep Time, 0x82ab, -1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final TagInfoAscii EXIF_TAG_MDFILE_UNITS = new TagInfoAscii( -MDFile Units, 0x82ac, -1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final TagInfoDouble EXIF_TAG_PIXEL_SCALE = new TagInfoDouble( Pixel Scale, 0x830e, 3, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); @@ -909,10 +887,7 @@ public interface ExifTagConstants EXIF_TAG_MATTEING, EXIF_TAG_DATA_TYPE, EXIF_TAG_IMAGE_DEPTH, EXIF_TAG_TILE_DEPTH, EXIF_TAG_MODEL_2, EXIF_TAG_EXPOSURE_TIME, -EXIF_TAG_FNUMBER, EXIF_TAG_MDFILE_TAG, EXIF_TAG_MDSCALE_PIXEL, -EXIF_TAG_MDCOLOR_TABLE, EXIF_TAG_MDLAB_NAME
svn commit: r1304789 - in /commons/proper/sanselan/trunk/src: main/java/org/apache/commons/sanselan/formats/tiff/constants/ test/java/org/apache/commons/sanselan/formats/tiff/
Author: damjan Date: Sat Mar 24 13:33:40 2012 New Revision: 1304789 URL: http://svn.apache.org/viewvc?rev=1304789view=rev Log: Factor out Microsoft HD photo tags. Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/MicrosoftHdPhotoTagConstants.java (with props) Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/MolecularDynamicsGelTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TagConstantsUtils.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java?rev=1304789r1=1304788r2=1304789view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java Sat Mar 24 13:33:40 2012 @@ -28,8 +28,9 @@ public interface AllTagConstants extends ExifTagConstants, GpsTagConstants, HylaFaxTagConstants, -MolecularDynamicsGelTagConstants, MicrosoftTagConstants, +MicrosoftHdPhotoTagConstants, +MolecularDynamicsGelTagConstants, Rfc2301TagConstants, Tiff4TagConstants, TiffEpTagConstants, @@ -44,8 +45,9 @@ public interface AllTagConstants extends ExifTagConstants.ALL_EXIF_TAGS, GpsTagConstants.ALL_GPS_TAGS, HylaFaxTagConstants.ALL_HYLAFAX_TAGS, - MolecularDynamicsGelTagConstants.ALL_MOLECULAR_DYNAMICS_GEL_TAGS, MicrosoftTagConstants.ALL_MICROSOFT_TAGS, +MicrosoftHdPhotoTagConstants.ALL_MICROSOFT_HD_PHOTO_TAGS, + MolecularDynamicsGelTagConstants.ALL_MOLECULAR_DYNAMICS_GEL_TAGS, Rfc2301TagConstants.ALL_RFC_2301_TAGS, Tiff4TagConstants.ALL_TIFF_4_TAGS, TiffEpTagConstants.ALL_TIFF_EP_TAGS, Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java?rev=1304789r1=1304788r2=1304789view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java Sat Mar 24 13:33:40 2012 @@ -502,123 +502,6 @@ public interface ExifTagConstants TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final TagInfoRational EXIF_TAG_GAMMA = new TagInfoRational(Gamma, 0xa500, 1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); -public static final TagInfoByte EXIF_TAG_PIXEL_FORMAT = new TagInfoByte( -Pixel Format, 0xbc01, 16, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -// FIXME: convert to GUIDs -public static final int PIXEL_FORMAT_VALUE_BLACK_AND_WHITE = 0x5; -public static final int PIXEL_FORMAT_VALUE_8_BIT_GRAY = 0x8; -public static final int PIXEL_FORMAT_VALUE_16_BIT_BGR555 = 0x9; -public static final int PIXEL_FORMAT_VALUE_16_BIT_BGR565 = 0xa; -public static final int PIXEL_FORMAT_VALUE_16_BIT_GRAY = 0xb; -public static final int PIXEL_FORMAT_VALUE_24_BIT_BGR = 0xc; -public static final int PIXEL_FORMAT_VALUE_24_BIT_RGB = 0xd; -public static final int PIXEL_FORMAT_VALUE_32_BIT_BGR = 0xe; -public static final int PIXEL_FORMAT_VALUE_32_BIT_BGRA = 0xf; -public static final int PIXEL_FORMAT_VALUE_32_BIT_PBGRA = 0x10; -public static final int PIXEL_FORMAT_VALUE_32_BIT_GRAY_FLOAT = 0x11; -public static final int PIXEL_FORMAT_VALUE_48_BIT_RGB_FIXED_POINT = 0x12; -public static final int PIXEL_FORMAT_VALUE_32_BIT_BGR101010 = 0x13; -public static final int PIXEL_FORMAT_VALUE_48_BIT_RGB = 0x15; -public static final int PIXEL_FORMAT_VALUE_64_BIT_RGBA = 0x16; -public static final int PIXEL_FORMAT_VALUE_64_BIT_PRGBA = 0x17
svn commit: r1304986 - in /commons/proper/sanselan/trunk/src: main/java/org/apache/commons/sanselan/formats/tiff/constants/ test/java/org/apache/commons/sanselan/formats/tiff/
Author: damjan Date: Sun Mar 25 06:56:43 2012 New Revision: 1304986 URL: http://svn.apache.org/viewvc?rev=1304986view=rev Log: Factor out DNG and Alias Sketchbook Pro tags. Add some newer DNG tags that were missing. Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AliasSketchbookProTagConstants.java (with props) commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DngTagConstants.java (with props) Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AliasSketchbookProTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AliasSketchbookProTagConstants.java?rev=1304986view=auto == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AliasSketchbookProTagConstants.java (added) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AliasSketchbookProTagConstants.java Sun Mar 25 06:56:43 2012 @@ -0,0 +1,23 @@ +package org.apache.commons.sanselan.formats.tiff.constants; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo; +import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii; + +/** + * Alias Sketchbook Pro multi-layer TIFF + * BR + * http://www.awaresystems.be/imaging/tiff/tifftags/docs/alias.html + */ +public interface AliasSketchbookProTagConstants extends TiffFieldTypeConstants { +public static final TagInfoAscii EXIF_TAG_ALIAS_LAYER_METADATA = new TagInfoAscii( +Alias Layer Metadata, 0xc660, -1, +TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); + +public static final ListTagInfo ALL_ALIAS_SKETCHBOOK_PRO_TAGS = +Collections.unmodifiableList(Arrays.asList(new TagInfo[] { +EXIF_TAG_ALIAS_LAYER_METADATA})); +} Propchange: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AliasSketchbookProTagConstants.java -- svn:eol-style = native Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java?rev=1304986r1=1304985r2=1304986view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java Sun Mar 25 06:56:43 2012 @@ -24,7 +24,9 @@ import org.apache.commons.sanselan.forma public interface AllTagConstants extends AdobePhotoshopTagConstants, AdobePageMaker6TagConstants, +AliasSketchbookProTagConstants, DcfTagConstants, +DngTagConstants, ExifTagConstants, GpsTagConstants, HylaFaxTagConstants, @@ -41,7 +43,9 @@ public interface AllTagConstants extends TagConstantsUtils.mergeTagLists( AdobePageMaker6TagConstants.ALL_ADOBE_PAGEMAKER_6_TAGS, AdobePhotoshopTagConstants.ALL_ADOBE_PHOTOSHOP_TAGS, + AliasSketchbookProTagConstants.ALL_ALIAS_SKETCHBOOK_PRO_TAGS, DcfTagConstants.ALL_DCF_TAGS, +DngTagConstants.ALL_DNG_TAGS, ExifTagConstants.ALL_EXIF_TAGS, GpsTagConstants.ALL_GPS_TAGS, HylaFaxTagConstants.ALL_HYLAFAX_TAGS, Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DngTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DngTagConstants.java?rev=1304986view=auto == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DngTagConstants.java (added) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants
svn commit: r1304990 - in /commons/proper/sanselan/trunk/src: main/java/org/apache/commons/sanselan/formats/tiff/constants/ test/java/org/apache/commons/sanselan/formats/tiff/
Author: damjan Date: Sun Mar 25 07:46:56 2012 New Revision: 1304990 URL: http://svn.apache.org/viewvc?rev=1304990view=rev Log: Factor out OCE Scanjob tags. Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/OceScanjobTagConstants.java (with props) Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java?rev=1304990r1=1304989r2=1304990view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java Sun Mar 25 07:46:56 2012 @@ -33,6 +33,7 @@ public interface AllTagConstants extends MicrosoftTagConstants, MicrosoftHdPhotoTagConstants, MolecularDynamicsGelTagConstants, +OceScanjobTagConstants, Rfc2301TagConstants, Tiff4TagConstants, TiffEpTagConstants, @@ -52,6 +53,7 @@ public interface AllTagConstants extends MicrosoftTagConstants.ALL_MICROSOFT_TAGS, MicrosoftHdPhotoTagConstants.ALL_MICROSOFT_HD_PHOTO_TAGS, MolecularDynamicsGelTagConstants.ALL_MOLECULAR_DYNAMICS_GEL_TAGS, +OceScanjobTagConstants.ALL_OCE_SCANJOB_TAGS, Rfc2301TagConstants.ALL_RFC_2301_TAGS, Tiff4TagConstants.ALL_TIFF_4_TAGS, TiffEpTagConstants.ALL_TIFF_EP_TAGS, Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java?rev=1304990r1=1304989r2=1304990view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java Sun Mar 25 07:46:56 2012 @@ -501,18 +501,6 @@ public interface ExifTagConstants TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final TagInfoRational EXIF_TAG_GAMMA = new TagInfoRational(Gamma, 0xa500, 1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); -public static final TagInfoAscii EXIF_TAG_OCE_SCANJOB_DESC = new TagInfoAscii( -Oce Scanjob Desc, 0xc427, -1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final TagInfoAscii EXIF_TAG_OCE_APPLICATION_SELECTOR = new TagInfoAscii( -Oce Application Selector, 0xc428, --1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final TagInfoAscii EXIF_TAG_OCE_IDNUMBER = new TagInfoAscii( -Oce IDNumber, 0xc429, -1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final TagInfoAscii EXIF_TAG_OCE_IMAGE_LOGIC = new TagInfoAscii( -Oce Image Logic, 0xc42a, -1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final TagInfoUnknown EXIF_TAG_ANNOTATIONS = new TagInfoUnknown( Annotations, 0xc44f, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); @@ -628,9 +616,7 @@ public interface ExifTagConstants EXIF_TAG_DEVICE_SETTING_DESCRIPTION, EXIF_TAG_SUBJECT_DISTANCE_RANGE, EXIF_TAG_IMAGE_UNIQUE_ID, EXIF_TAG_GDALMETADATA, EXIF_TAG_GDALNO_DATA, EXIF_TAG_GAMMA, -EXIF_TAG_OCE_SCANJOB_DESC, -EXIF_TAG_OCE_APPLICATION_SELECTOR, EXIF_TAG_OCE_IDNUMBER, -EXIF_TAG_OCE_IMAGE_LOGIC, EXIF_TAG_ANNOTATIONS, EXIF_TAG_PRINT_IM, +EXIF_TAG_ANNOTATIONS, EXIF_TAG_PRINT_IM, EXIF_TAG_DNG_ADOBE_DATA, EXIF_TAG_DNG_PENTAX_DATA, EXIF_TAG_OFFSET_SCHEMA, EXIF_TAG_OWNER_NAME, EXIF_TAG_SERIAL_NUMBER, EXIF_TAG_LENS, EXIF_TAG_RAW_FILE, Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/OceScanjobTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper
svn commit: r1304991 - in /commons/proper/sanselan/trunk/src: main/java/org/apache/commons/sanselan/formats/tiff/constants/ test/java/org/apache/commons/sanselan/formats/tiff/
Author: damjan Date: Sun Mar 25 07:52:44 2012 New Revision: 1304991 URL: http://svn.apache.org/viewvc?rev=1304991view=rev Log: Factor out GDAL library tags. Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GdalLibraryTagConstants.java (with props) Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java?rev=1304991r1=1304990r2=1304991view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java Sun Mar 25 07:52:44 2012 @@ -28,6 +28,7 @@ public interface AllTagConstants extends DcfTagConstants, DngTagConstants, ExifTagConstants, +GdalLibraryTagConstants, GpsTagConstants, HylaFaxTagConstants, MicrosoftTagConstants, @@ -48,6 +49,7 @@ public interface AllTagConstants extends DcfTagConstants.ALL_DCF_TAGS, DngTagConstants.ALL_DNG_TAGS, ExifTagConstants.ALL_EXIF_TAGS, +GdalLibraryTagConstants.ALL_GDAL_LIBRARY_TAGS, GpsTagConstants.ALL_GPS_TAGS, HylaFaxTagConstants.ALL_HYLAFAX_TAGS, MicrosoftTagConstants.ALL_MICROSOFT_TAGS, Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java?rev=1304991r1=1304990r2=1304991view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java Sun Mar 25 07:52:44 2012 @@ -493,12 +493,6 @@ public interface ExifTagConstants public static final TagInfoAscii EXIF_TAG_IMAGE_UNIQUE_ID = new TagInfoAscii( Image Unique ID, 0xa420, 1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); -public static final TagInfoAscii EXIF_TAG_GDALMETADATA = new TagInfoAscii( -GDALMetadata, 0xa480, -1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final TagInfoAscii EXIF_TAG_GDALNO_DATA = new TagInfoAscii( -GDALNo Data, 0xa481, -1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final TagInfoRational EXIF_TAG_GAMMA = new TagInfoRational(Gamma, 0xa500, 1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); public static final TagInfoUnknown EXIF_TAG_ANNOTATIONS = new TagInfoUnknown( @@ -615,7 +609,7 @@ public interface ExifTagConstants EXIF_TAG_CONTRAST_1, EXIF_TAG_SATURATION_1, EXIF_TAG_SHARPNESS_1, EXIF_TAG_DEVICE_SETTING_DESCRIPTION, EXIF_TAG_SUBJECT_DISTANCE_RANGE, EXIF_TAG_IMAGE_UNIQUE_ID, -EXIF_TAG_GDALMETADATA, EXIF_TAG_GDALNO_DATA, EXIF_TAG_GAMMA, +EXIF_TAG_GAMMA, EXIF_TAG_ANNOTATIONS, EXIF_TAG_PRINT_IM, EXIF_TAG_DNG_ADOBE_DATA, EXIF_TAG_DNG_PENTAX_DATA, EXIF_TAG_OFFSET_SCHEMA, EXIF_TAG_OWNER_NAME, Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GdalLibraryTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GdalLibraryTagConstants.java?rev=1304991view=auto == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GdalLibraryTagConstants.java (added) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GdalLibraryTagConstants.java Sun Mar 25 07:52:44 2012 @@ -0,0 +1,30 @@ +package org.apache.commons.sanselan.formats.tiff.constants; + +import java.util.Arrays; +import
svn commit: r1304992 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan: common/itu_t4/T4Compression.java formats/tiff/constants/TagInfo.java
Author: damjan Date: Sun Mar 25 07:53:35 2012 New Revision: 1304992 URL: http://svn.apache.org/viewvc?rev=1304992view=rev Log: Delete some empty files. Removed: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/common/itu_t4/T4Compression.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TagInfo.java
svn commit: r1304993 - in /commons/proper/sanselan/trunk/src: main/java/org/apache/commons/sanselan/formats/tiff/constants/ test/java/org/apache/commons/sanselan/formats/tiff/
Author: damjan Date: Sun Mar 25 08:21:39 2012 New Revision: 1304993 URL: http://svn.apache.org/viewvc?rev=1304993view=rev Log: Factor out Geo TIFF tags. Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GeoTiffTagConstants.java (with props) Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java commons/proper/sanselan/trunk/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java?rev=1304993r1=1304992r2=1304993view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java Sun Mar 25 08:21:39 2012 @@ -28,6 +28,7 @@ public interface AllTagConstants extends DcfTagConstants, DngTagConstants, ExifTagConstants, +GeoTiffTagConstants, GdalLibraryTagConstants, GpsTagConstants, HylaFaxTagConstants, @@ -49,6 +50,7 @@ public interface AllTagConstants extends DcfTagConstants.ALL_DCF_TAGS, DngTagConstants.ALL_DNG_TAGS, ExifTagConstants.ALL_EXIF_TAGS, +GeoTiffTagConstants.ALL_GEO_TIFF_TAGS, GdalLibraryTagConstants.ALL_GDAL_LIBRARY_TAGS, GpsTagConstants.ALL_GPS_TAGS, HylaFaxTagConstants.ALL_HYLAFAX_TAGS, Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java?rev=1304993r1=1304992r2=1304993view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java Sun Mar 25 08:21:39 2012 @@ -201,15 +201,6 @@ public interface ExifTagConstants public static final TagInfoLong EXIF_TAG_EXIF_OFFSET = new TagInfoLong( Exif Offset, 0x8769, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN, true); -public static final TagInfoShort EXIF_TAG_GEO_TIFF_DIRECTORY = new TagInfoShort( -Geo Tiff Directory, 0x87af, -1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final TagInfoDouble EXIF_TAG_GEO_TIFF_DOUBLE_PARAMS = new TagInfoDouble( -Geo Tiff Double Params, 0x87b0, --1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final TagInfoAscii EXIF_TAG_GEO_TIFF_ASCII_PARAMS = new TagInfoAscii( -Geo Tiff Ascii Params, 0x87b1, -1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final TagInfoShort EXIF_TAG_EXPOSURE_PROGRAM = new TagInfoShort( Exposure Program, 0x8822, 1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); @@ -575,8 +566,7 @@ public interface ExifTagConstants EXIF_TAG_HCUSAGE, EXIF_TAG_SEMINFO, EXIF_TAG_AFCP_IPTC, EXIF_TAG_MODEL_TRANSFORM, EXIF_TAG_LEAF_DATA, EXIF_TAG_PHOTOSHOP_SETTINGS, EXIF_TAG_EXIF_OFFSET, -EXIF_TAG_GEO_TIFF_DIRECTORY, EXIF_TAG_GEO_TIFF_DOUBLE_PARAMS, -EXIF_TAG_GEO_TIFF_ASCII_PARAMS, EXIF_TAG_EXPOSURE_PROGRAM, +EXIF_TAG_EXPOSURE_PROGRAM, EXIF_TAG_SPECTRAL_SENSITIVITY, EXIF_TAG_GPSINFO, EXIF_TAG_ISO, EXIF_TAG_OPTO_ELECTRIC_CONV_FACTOR, EXIF_TAG_LEAF_SUB_IFD, Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GeoTiffTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GeoTiffTagConstants.java?rev=1304993view=auto == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GeoTiffTagConstants.java (added) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons
svn commit: r1304994 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants: ExifTagConstants.java GeoTiffTagConstants.java
Author: damjan Date: Sun Mar 25 08:30:56 2012 New Revision: 1304994 URL: http://svn.apache.org/viewvc?rev=1304994view=rev Log: Factor out some more Geo Tiff tags. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GeoTiffTagConstants.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java?rev=1304994r1=1304993r2=1304994view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java Sun Mar 25 08:30:56 2012 @@ -126,9 +126,6 @@ public interface ExifTagConstants public static final TagInfoRational EXIF_TAG_FNUMBER = new TagInfoRational( FNumber, 0x829d, -1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); -public static final TagInfoDouble EXIF_TAG_PIXEL_SCALE = new TagInfoDouble( -Pixel Scale, 0x830e, 3, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); // FIXME: other types? public static final TagInfoLong EXIF_TAG_IPTC_NAA = new TagInfoLong(IPTC-NAA, 0x83bb, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); @@ -138,12 +135,6 @@ public interface ExifTagConstants public static final TagInfoLong EXIF_TAG_INTERGRAPH_FLAG_REGISTERS = new TagInfoLong( Intergraph Flag Registers, 0x847f, 16, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final TagInfoDouble EXIF_TAG_INTERGRAPH_MATRIX = new TagInfoDouble( -Intergraph Matrix, 0x8480, -1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final TagInfoDouble EXIF_TAG_MODEL_TIE_POINT = new TagInfoDouble( -Model Tie Point, 0x8482, -1, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final TagInfoAscii EXIF_TAG_SITE = new TagInfoAscii(Site, 0x84e0, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final TagInfoAscii EXIF_TAG_COLOR_SEQUENCE = new TagInfoAscii( @@ -190,9 +181,6 @@ public interface ExifTagConstants 0x8546, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); public static final TagInfoLong EXIF_TAG_AFCP_IPTC = new TagInfoLong(AFCP_IPTC, 0x8568, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); -public static final TagInfoDouble EXIF_TAG_MODEL_TRANSFORM = new TagInfoDouble( -Model Transform, 0x85d8, 16, -TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final TagInfoLong EXIF_TAG_LEAF_DATA = new TagInfoLong(Leaf Data, 0x8606, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final TagInfoByte EXIF_TAG_PHOTOSHOP_SETTINGS = new TagInfoByte( @@ -552,10 +540,10 @@ public interface ExifTagConstants EXIF_TAG_MATTEING, EXIF_TAG_DATA_TYPE, EXIF_TAG_IMAGE_DEPTH, EXIF_TAG_TILE_DEPTH, EXIF_TAG_MODEL_2, EXIF_TAG_EXPOSURE_TIME, -EXIF_TAG_FNUMBER, EXIF_TAG_PIXEL_SCALE, EXIF_TAG_IPTC_NAA, +EXIF_TAG_FNUMBER, EXIF_TAG_IPTC_NAA, EXIF_TAG_INTERGRAPH_PACKET_DATA, -EXIF_TAG_INTERGRAPH_FLAG_REGISTERS, EXIF_TAG_INTERGRAPH_MATRIX, -EXIF_TAG_MODEL_TIE_POINT, EXIF_TAG_SITE, EXIF_TAG_COLOR_SEQUENCE, +EXIF_TAG_INTERGRAPH_FLAG_REGISTERS, +EXIF_TAG_SITE, EXIF_TAG_COLOR_SEQUENCE, EXIF_TAG_IT8HEADER, EXIF_TAG_RASTER_PADDING, EXIF_TAG_BITS_PER_RUN_LENGTH, EXIF_TAG_BITS_PER_EXTENDED_RUN_LENGTH, EXIF_TAG_COLOR_TABLE, @@ -564,7 +552,7 @@ public interface ExifTagConstants EXIF_TAG_BACKGROUND_COLOR_VALUE, EXIF_TAG_PIXEL_INTENSITY_RANGE, EXIF_TAG_TRANSPARENCY_INDICATOR, EXIF_TAG_COLOR_CHARACTERIZATION, EXIF_TAG_HCUSAGE, EXIF_TAG_SEMINFO, EXIF_TAG_AFCP_IPTC, -EXIF_TAG_MODEL_TRANSFORM, EXIF_TAG_LEAF_DATA, +EXIF_TAG_LEAF_DATA, EXIF_TAG_PHOTOSHOP_SETTINGS, EXIF_TAG_EXIF_OFFSET, EXIF_TAG_EXPOSURE_PROGRAM, EXIF_TAG_SPECTRAL_SENSITIVITY, EXIF_TAG_GPSINFO, EXIF_TAG_ISO, Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GeoTiffTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org
svn commit: r1309242 - /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegImageParser.java
Author: damjan Date: Wed Apr 4 04:46:43 2012 New Revision: 1309242 URL: http://svn.apache.org/viewvc?rev=1309242view=rev Log: Fix the PhysicalWidthDpi calculation for JPEG images. Jira issue key: SANSELAN-70 Submitted by: Tars Joris tars dot joris at inventivedesigners dot com Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegImageParser.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=1309242r1=1309241r2=1309242view=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 Wed Apr 4 04:46:43 2012 @@ -792,7 +792,7 @@ public class JpegImageParser extends Ima if (units_per_inch 0) { -PhysicalWidthDpi = (int) Math.round(x_density / units_per_inch); +PhysicalWidthDpi = (int) Math.round(x_density * units_per_inch); PhysicalWidthInch = (float) (Width / (x_density * units_per_inch)); PhysicalHeightDpi = (int) Math.round(y_density * units_per_inch); PhysicalHeightInch = (float) (Height / (y_density * units_per_inch));
svn commit: r1325111 - /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java
Author: damjan Date: Thu Apr 12 03:38:40 2012 New Revision: 1325111 URL: http://svn.apache.org/viewvc?rev=1325111view=rev Log: Fix reading DPI for TIFF files. Jira issue key: SANSELAN-68 Submitted by: VVD vvd at pochta dot ru Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java?rev=1325111r1=1325110r2=1325111view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java Thu Apr 12 03:38:40 2012 @@ -201,8 +201,8 @@ public class TiffImageParser extends Ima case 2: // Inch unitsPerInch = 1.0; break; -case 3: // Meter -unitsPerInch = 0.0254; +case 3: // Centimeter +unitsPerInch = 2.54; break; default: break; @@ -223,7 +223,7 @@ public class TiffImageParser extends Ima { double XResolutionPixelsPerUnit = xResolutionField .getDoubleValue(); -physicalWidthDpi = (int) (XResolutionPixelsPerUnit / unitsPerInch); +physicalWidthDpi = (int) Math.round((XResolutionPixelsPerUnit * unitsPerInch)); physicalWidthInch = (float) (width / (XResolutionPixelsPerUnit * unitsPerInch)); } if ((yResolutionField != null) @@ -231,7 +231,7 @@ public class TiffImageParser extends Ima { double YResolutionPixelsPerUnit = yResolutionField .getDoubleValue(); -physicalHeightDpi = (int) (YResolutionPixelsPerUnit / unitsPerInch); +physicalHeightDpi = (int) Math.round((YResolutionPixelsPerUnit * unitsPerInch)); physicalHeightInch = (float) (height / (YResolutionPixelsPerUnit * unitsPerInch)); } }
svn commit: r1325112 - /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/PngImageParser.java
Author: damjan Date: Thu Apr 12 03:41:07 2012 New Revision: 1325112 URL: http://svn.apache.org/viewvc?rev=1325112view=rev Log: Fix reading DPI for PNG files. Jira issue key: SANSELAN-69 Submitted by: VVD vvd at pochta dot ru Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/PngImageParser.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/PngImageParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/PngImageParser.java?rev=1325112r1=1325111r2=1325112view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/PngImageParser.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/PngImageParser.java Thu Apr 12 03:41:07 2012 @@ -627,12 +627,12 @@ public class PngImageParser extends Imag .round(pngChunkpHYs.PixelsPerUnitXAxis * meters_per_inch); PhysicalWidthInch = (float) ((double) Width -* (double) pngChunkpHYs.PixelsPerUnitXAxis * meters_per_inch); +/ ((double) pngChunkpHYs.PixelsPerUnitXAxis * meters_per_inch)); PhysicalHeightDpi = (int) Math .round(pngChunkpHYs.PixelsPerUnitYAxis * meters_per_inch); PhysicalHeightInch = (float) ((double) Height -* (double) pngChunkpHYs.PixelsPerUnitYAxis * meters_per_inch); +/ ((double) pngChunkpHYs.PixelsPerUnitYAxis * meters_per_inch)); } String FormatDetails = Png;
svn commit: r1325114 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff: TiffImageParser.java constants/ExifTagConstants.java
Author: damjan Date: Thu Apr 12 03:56:34 2012 New Revision: 1325114 URL: http://svn.apache.org/viewvc?rev=1325114view=rev Log: Add the Software TIFF tag, and get the byte order after reading the first TIFF directory. Submitted by: Piyush Kapoor pkapoor at adobe dot com Jira issue key: SANSELAN-71 Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java?rev=1325114r1=1325113r2=1325114view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java Thu Apr 12 03:56:34 2012 @@ -455,8 +455,8 @@ public class TiffImageParser extends Ima { FormatCompliance formatCompliance = FormatCompliance.getDefault(); TiffReader reader = new TiffReader(isStrict(params)); -int byteOrder = reader.getByteOrder(); TiffContents contents = reader.readFirstDirectory(byteSource, params, true, formatCompliance); +int byteOrder = reader.getByteOrder(); TiffDirectory directory = contents.directories.get(0); BufferedImage result = directory.getTiffImage(byteOrder, params); if (null == result) Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java?rev=1325114r1=1325113r2=1325114view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java Thu Apr 12 03:56:34 2012 @@ -57,6 +57,9 @@ public interface ExifTagConstants public static final TagInfoAscii EXIF_TAG_PROCESSING_SOFTWARE = new TagInfoAscii( Processing Software, 0x000b, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); +public static final TagInfoAscii EXIF_TAG_SOFTWARE = new TagInfoAscii(Software, + 0x0131, 1, +TiffDirectoryType.EXIF_DIRECTORY_IFD0); public static final TagInfoLong EXIF_TAG_PREVIEW_IMAGE_START_IFD0 = new TagInfoLong( Preview Image Start, 0x0111, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0, true); @@ -517,6 +520,7 @@ public interface ExifTagConstants Collections.unmodifiableList(Arrays.asList( EXIF_TAG_INTEROP_INDEX, EXIF_TAG_INTEROP_VERSION, EXIF_TAG_PROCESSING_SOFTWARE, +EXIF_TAG_SOFTWARE, EXIF_TAG_PREVIEW_IMAGE_START_IFD0, EXIF_TAG_PREVIEW_IMAGE_START_SUB_IFD1, EXIF_TAG_JPG_FROM_RAW_START_SUB_IFD2,
svn commit: r1325834 - /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java
Author: damjan Date: Fri Apr 13 16:39:37 2012 New Revision: 1325834 URL: http://svn.apache.org/viewvc?rev=1325834view=rev Log: Correct the expected size of the decompressed TIFF image data. Jira issue key: SANSELAN-72 Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java?rev=1325834r1=1325833r2=1325834view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReaderStrips.java Fri Apr 13 16:39:37 2012 @@ -95,8 +95,9 @@ public final class DataReaderStrips exte long rowsPerStripLong = 0xL rowsPerStrip; long rowsRemaining = height - (strip * rowsPerStripLong); long rowsInThisStrip = Math.min(rowsRemaining, rowsPerStripLong); +long bytesPerRow = (bitsPerPixel * width + 7) / 8; +long bytesPerStrip = rowsInThisStrip * bytesPerRow; long pixelsPerStrip = rowsInThisStrip * width; -long bytesPerStrip = ((pixelsPerStrip * bitsPerPixel) + 7) / 8; byte compressed[] = imageData.strips[strip].data; @@ -108,4 +109,4 @@ public final class DataReaderStrips exte } } -} \ No newline at end of file +}
svn commit: r1325915 - /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/BitParser.java
Author: damjan Date: Fri Apr 13 19:33:22 2012 New Revision: 1325915 URL: http://svn.apache.org/viewvc?rev=1325915view=rev Log: Improve the sample depth scaling for greyscale PNG files. Jira info key: SANSELAN-72 Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/BitParser.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/BitParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/BitParser.java?rev=1325915r1=1325914r2=1325915view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/BitParser.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/png/BitParser.java Fri Apr 13 19:33:22 2012 @@ -63,7 +63,7 @@ public class BitParser int rot = 8 - bitDepth; if (rot 0) -sample = rot; +sample = sample * 255 / ((1 bitDepth) - 1); else if (rot 0) sample = -rot;
svn commit: r1326069 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff: TiffDirectory.java TiffImageParser.java
Author: damjan Date: Sat Apr 14 08:08:05 2012 New Revision: 1326069 URL: http://svn.apache.org/viewvc?rev=1326069view=rev Log: Added some more methods for getting typed values from TIFF fields. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffDirectory.java commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffDirectory.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffDirectory.java?rev=1326069r1=1326068r2=1326069view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffDirectory.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffDirectory.java Sat Apr 14 08:08:05 2012 @@ -202,148 +202,332 @@ public class TiffDirectory extends TiffE return field.getValue(); } -public byte[] getFieldValue(TagInfoByte tag) throws ImageReadException { +public byte getSingleFieldValue(TagInfoByte tag) throws ImageReadException { +byte[] result = getFieldValue(tag, true); +if (result.length != 1) { +throw new ImageReadException(Field \ + tag.name + \ has incorrect length + result.length); +} +return result[0]; +} + +public String getSingleFieldValue(TagInfoAscii tag) throws ImageReadException { +String[] result = getFieldValue(tag, true); +if (result.length != 1) { +throw new ImageReadException(Field \ + tag.name + \ has incorrect length + result.length); +} +return result[0]; +} + +public short getSingleFieldValue(TagInfoShort tag) throws ImageReadException { +short[] result = getFieldValue(tag, true); +if (result.length != 1) { +throw new ImageReadException(Field \ + tag.name + \ has incorrect length + result.length); +} +return result[0]; +} + +public int getSingleFieldValue(TagInfoLong tag) throws ImageReadException { +int[] result = getFieldValue(tag, true); +if (result.length != 1) { +throw new ImageReadException(Field \ + tag.name + \ has incorrect length + result.length); +} +return result[0]; +} + +public RationalNumber getSingleFieldValue(TagInfoRational tag) throws ImageReadException { +RationalNumber[] result = getFieldValue(tag, true); +if (result.length != 1) { +throw new ImageReadException(Field \ + tag.name + \ has incorrect length + result.length); +} +return result[0]; +} + +public byte getSingleFieldValue(TagInfoSByte tag) throws ImageReadException { +byte[] result = getFieldValue(tag, true); +if (result.length != 1) { +throw new ImageReadException(Field \ + tag.name + \ has incorrect length + result.length); +} +return result[0]; +} + +public short getSingleFieldValue(TagInfoSShort tag) throws ImageReadException { +short[] result = getFieldValue(tag, true); +if (result.length != 1) { +throw new ImageReadException(Field \ + tag.name + \ has incorrect length + result.length); +} +return result[0]; +} + +public int getSingleFieldValue(TagInfoSLong tag) throws ImageReadException { +int[] result = getFieldValue(tag, true); +if (result.length != 1) { +throw new ImageReadException(Field \ + tag.name + \ has incorrect length + result.length); +} +return result[0]; +} + +public RationalNumber getSingleFieldValue(TagInfoSRational tag) throws ImageReadException { +RationalNumber[] result = getFieldValue(tag, true); +if (result.length != 1) { +throw new ImageReadException(Field \ + tag.name + \ has incorrect length + result.length); +} +return result[0]; +} + +public float getSingleFieldValue(TagInfoFloat tag) throws ImageReadException { +float[] result = getFieldValue(tag, true); +if (result.length != 1) { +throw new ImageReadException(Field \ + tag.name + \ has incorrect length + result.length); +} +return result[0]; +} + +public double getSingleFieldValue(TagInfoDouble tag) throws ImageReadException { +double[] result = getFieldValue(tag, true); +if (result.length != 1) { +throw new ImageReadException(Field \ + tag.name + \ has incorrect length + result.length); +} +return result[0]; +} + +public byte[] getFieldValue(TagInfoByte tag, boolean mustExist) throws ImageReadException
svn commit: r1326649 [7/7] - in /commons/proper/sanselan/trunk/src: main/java/org/apache/commons/imaging/ main/java/org/apache/commons/imaging/color/ main/java/org/apache/commons/imaging/common/ main/
Modified: commons/proper/sanselan/trunk/src/test/java/org/apache/commons/imaging/formats/png/PngWriteReadTest.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/test/java/org/apache/commons/imaging/formats/png/PngWriteReadTest.java?rev=1326649r1=1326258r2=1326649view=diff == --- commons/proper/sanselan/trunk/src/test/java/org/apache/commons/imaging/formats/png/PngWriteReadTest.java (original) +++ commons/proper/sanselan/trunk/src/test/java/org/apache/commons/imaging/formats/png/PngWriteReadTest.java Mon Apr 16 15:33:13 2012 @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.commons.sanselan.formats.png; +package org.apache.commons.imaging.formats.png; import java.awt.image.BufferedImage; import java.io.File; @@ -24,12 +24,12 @@ import java.util.HashMap; import java.util.Map; import java.util.Random; -import org.apache.commons.sanselan.ImageFormat; -import org.apache.commons.sanselan.ImageReadException; -import org.apache.commons.sanselan.ImageWriteException; -import org.apache.commons.sanselan.Sanselan; -import org.apache.commons.sanselan.SanselanTest; -import org.apache.commons.sanselan.util.IoUtils; +import org.apache.commons.imaging.ImageFormat; +import org.apache.commons.imaging.ImageReadException; +import org.apache.commons.imaging.ImageWriteException; +import org.apache.commons.imaging.Sanselan; +import org.apache.commons.imaging.SanselanTest; +import org.apache.commons.imaging.util.IoUtils; public class PngWriteReadTest extends SanselanTest { Modified: commons/proper/sanselan/trunk/src/test/java/org/apache/commons/imaging/formats/rgbe/RgbeBaseTest.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/test/java/org/apache/commons/imaging/formats/rgbe/RgbeBaseTest.java?rev=1326649r1=1326258r2=1326649view=diff == --- commons/proper/sanselan/trunk/src/test/java/org/apache/commons/imaging/formats/rgbe/RgbeBaseTest.java (original) +++ commons/proper/sanselan/trunk/src/test/java/org/apache/commons/imaging/formats/rgbe/RgbeBaseTest.java Mon Apr 16 15:33:13 2012 @@ -14,16 +14,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.commons.sanselan.formats.rgbe; +package org.apache.commons.imaging.formats.rgbe; import java.io.File; import java.io.IOException; import java.util.List; -import org.apache.commons.sanselan.ImageFormat; -import org.apache.commons.sanselan.ImageReadException; -import org.apache.commons.sanselan.Sanselan; -import org.apache.commons.sanselan.SanselanTest; +import org.apache.commons.imaging.ImageFormat; +import org.apache.commons.imaging.ImageReadException; +import org.apache.commons.imaging.Sanselan; +import org.apache.commons.imaging.SanselanTest; public abstract class RgbeBaseTest extends SanselanTest { private static boolean isRgbe( File file ) throws IOException, Modified: commons/proper/sanselan/trunk/src/test/java/org/apache/commons/imaging/formats/rgbe/RgbeReadTest.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/test/java/org/apache/commons/imaging/formats/rgbe/RgbeReadTest.java?rev=1326649r1=1326258r2=1326649view=diff == --- commons/proper/sanselan/trunk/src/test/java/org/apache/commons/imaging/formats/rgbe/RgbeReadTest.java (original) +++ commons/proper/sanselan/trunk/src/test/java/org/apache/commons/imaging/formats/rgbe/RgbeReadTest.java Mon Apr 16 15:33:13 2012 @@ -14,19 +14,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.commons.sanselan.formats.rgbe; +package org.apache.commons.imaging.formats.rgbe; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.List; -import org.apache.commons.sanselan.ImageInfo; -import org.apache.commons.sanselan.ImageReadException; -import org.apache.commons.sanselan.ImageWriteException; -import org.apache.commons.sanselan.Sanselan; -import org.apache.commons.sanselan.common.IImageMetadata; -import org.apache.commons.sanselan.util.Debug; +import org.apache.commons.imaging.ImageInfo; +import org.apache.commons.imaging.ImageReadException; +import org.apache.commons.imaging.ImageWriteException; +import org.apache.commons.imaging.Sanselan; +import org.apache.commons.imaging.common.IImageMetadata; +import org.apache.commons.imaging.util.Debug; public class RgbeReadTest extends RgbeBaseTest { public void test() throws IOException, ImageReadException, Modified: commons/proper/sanselan/trunk/src/test/java/org/apache/commons/imaging/formats/tiff/TiffBaseTest.java URL:
svn commit: r1326685 - in /commons/proper: imaging/ sanselan/
Author: damjan Date: Mon Apr 16 17:02:40 2012 New Revision: 1326685 URL: http://svn.apache.org/viewvc?rev=1326685view=rev Log: Rename the base directory from sanselan to imaging. Added: commons/proper/imaging/ - copied from r1326684, commons/proper/sanselan/ Removed: commons/proper/sanselan/
svn commit: r1326687 - /commons/proper/imaging/trunk/pom.xml
Author: damjan Date: Mon Apr 16 17:13:37 2012 New Revision: 1326687 URL: http://svn.apache.org/viewvc?rev=1326687view=rev Log: Rename POM to Commons Imaging. Modified: commons/proper/imaging/trunk/pom.xml Modified: commons/proper/imaging/trunk/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/pom.xml?rev=1326687r1=1326686r2=1326687view=diff == --- commons/proper/imaging/trunk/pom.xml (original) +++ commons/proper/imaging/trunk/pom.xml Mon Apr 16 17:13:37 2012 @@ -32,8 +32,8 @@ /parent groupIdorg.apache.commons/groupId - artifactIdcommons-sanselan/artifactId - nameCommons Sanselan/name + artifactIdcommons-imaging/artifactId + nameCommons Imaging/name version1.0-SNAPSHOT/version @@ -41,13 +41,13 @@ Keep the description on a single line. Otherwise Maven might generate a corrupted MANIFEST.MF (see http://jira.codehaus.org/browse/MJAR-4) -- - descriptionCommons Sanselan is a pure-Java image library./description + descriptionCommons Imaging is a pure-Java image library./description urlhttp://commons.apache.org/sanselan//url scm - connectionscm:svn:http://svn.apache.org/repos/asf/commons/proper/sanselan/trunk/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/commons/proper/sanselan/trunk/developerConnection -urlhttp://svn.apache.org/viewvc/commons/proper/sanselan/trunk/url + connectionscm:svn:http://svn.apache.org/repos/asf/commons/proper/imaging/trunk/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/commons/proper/imaging/trunk/developerConnection +urlhttp://svn.apache.org/viewvc/commons/proper/imaging/trunk/url /scm issueManagement @@ -63,11 +63,11 @@ properties maven.compile.source1.5/maven.compile.source maven.compile.target1.5/maven.compile.target -commons.componentidsanselan/commons.componentid +commons.componentidimaging/commons.componentid commons.release.version1.0/commons.release.version commons.jira.idSANSELAN/commons.jira.id commons.jira.pid12310720/commons.jira.pid - commons.osgi.exportorg.apache.commons.sanselan.*;version=${project.version};-noimport:=true/commons.osgi.export + commons.osgi.exportorg.apache.commons.imaging.*;version=${project.version};-noimport:=true/commons.osgi.export commons.binary.suffix / project.build.sourceEncodingUTF-8/project.build.sourceEncoding project.reporting.outputEncodingUTF-8/project.reporting.outputEncoding
svn commit: r1328602 - in /commons/proper/imaging/trunk/src/site: site.xml xdoc/download_imaging.xml xdoc/download_sanselan.xml xdoc/gettingstarted.xml xdoc/index.xml xdoc/mail-lists.xml xdoc/whysanse
Author: damjan Date: Sat Apr 21 07:43:17 2012 New Revision: 1328602 URL: http://svn.apache.org/viewvc?rev=1328602view=rev Log: Update website to use Imaging instead of Sanselan. Added: commons/proper/imaging/trunk/src/site/xdoc/download_imaging.xml (with props) Removed: commons/proper/imaging/trunk/src/site/xdoc/download_sanselan.xml commons/proper/imaging/trunk/src/site/xdoc/whysanselan.xml Modified: commons/proper/imaging/trunk/src/site/site.xml commons/proper/imaging/trunk/src/site/xdoc/gettingstarted.xml commons/proper/imaging/trunk/src/site/xdoc/index.xml commons/proper/imaging/trunk/src/site/xdoc/mail-lists.xml Modified: commons/proper/imaging/trunk/src/site/site.xml URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/site/site.xml?rev=1328602r1=1328601r2=1328602view=diff == --- commons/proper/imaging/trunk/src/site/site.xml (original) +++ commons/proper/imaging/trunk/src/site/site.xml Sat Apr 21 07:43:17 2012 @@ -29,12 +29,12 @@ item name=Issue Tracking href=/issue-tracking.html/ item name=Source Repository href=/source-repository.html/ item name=Documentation href=http://cwiki.apache.org/SANSELAN// - item name=Javadoc href=api-release/index.html/ - item name=Downloadhref=/download_sanselan.cgi/ + item name=Javadoc href=/apidocs/index.html/ + item name=Downloadhref=/download_imaging.cgi/ /menu menu name=Documentation - item name=Why Use Imaging href=/whysanselan.html/ + item name=Why Use Imaging href=/whyimaging.html/ item name=Getting Started href=/gettingstarted.html/ item name=Sample Usagehref=/sampleusage.html/ item name=Format Support href=/formatsupport.html/ Added: commons/proper/imaging/trunk/src/site/xdoc/download_imaging.xml URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/site/xdoc/download_imaging.xml?rev=1328602view=auto == --- commons/proper/imaging/trunk/src/site/xdoc/download_imaging.xml (added) +++ commons/proper/imaging/trunk/src/site/xdoc/download_imaging.xml Sat Apr 21 07:43:17 2012 @@ -0,0 +1,138 @@ +?xml version=1.0? +!-- +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You under the Apache License, Version 2.0 +(the License); you may not use this file except in compliance with +the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an AS IS BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-- +!-- + +==+ + | | + | THIS FILE IS GENERATED BY THE COMMONS BUILD PLUGIN | + |DO NOT EDIT DIRECTLY | + | | + +==+ + | TEMPLATE FILE: download-page-template.xml| + | commons-build-plugin/trunk/src/main/resources/commons-xdoc-templates | + +==+ + | | + | 1) Re-generate using: mvn commons:download-page | + | | + | 2) Set the following properties in the component's pom: | + |- commons.componentid (required, alphabetic, lower case) | + |- commons.release.version (required) | + |- commons.binary.suffix (optional)| + | (defaults to -bin, set to for pre-maven2 releases) | + | | + | 3) Example Properties| + | | + | properties| + |commons.componentidmath/commons.componentid | + |commons.release.version1.2/commons.release.version| + | /properties
svn commit: r1331275 - /commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java
Author: damjan Date: Fri Apr 27 07:54:02 2012 New Revision: 1331275 URL: http://svn.apache.org/viewvc?rev=1331275view=rev Log: Stop JpegImageMetadata from throwing NPE if the exif field is null. Jira issue key: SANSELAN-73 Submitted by: Piyush Kapoor pkapoor at adobe dot com Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java?rev=1331275r1=1331274r2=1331275view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java Fri Apr 27 07:54:02 2012 @@ -55,7 +55,11 @@ public class JpegImageMetadata implement public TiffField findEXIFValue(TagInfo tagInfo) { try { -return exif.findField(tagInfo); +if (exif != null) { + return exif.findField(tagInfo); +} else { + return null; +} } catch (ImageReadException cannotHappen) { return null; } @@ -217,4 +221,4 @@ public class JpegImageMetadata implement Debug.debug(this.toString()); } -} \ No newline at end of file +}
svn commit: r1331283 - /commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java
Author: damjan Date: Fri Apr 27 07:59:10 2012 New Revision: 1331283 URL: http://svn.apache.org/viewvc?rev=1331283view=rev Log: Make all JpegImageMetadata methods handle a null exif field. Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java?rev=1331283r1=1331282r2=1331283view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageMetadata.java Fri Apr 27 07:59:10 2012 @@ -67,7 +67,11 @@ public class JpegImageMetadata implement public TiffField findEXIFValueWithExactMatch(TagInfo tagInfo) { try { -return exif.findField(tagInfo, true); +if (exif != null) { +return exif.findField(tagInfo, true); +} else { +return null; +} } catch (ImageReadException cannotHappen) { return null; } @@ -97,6 +101,9 @@ public class JpegImageMetadata implement * @throws IOException */ public byte[] getEXIFThumbnailData() throws ImageReadException, IOException { +if (exif == null) { +return null; +} List? extends IImageMetadataItem dirs = exif.getDirectories(); for (int i = 0; i dirs.size(); i++) { TiffImageMetadata.Directory dir = (TiffImageMetadata.Directory) dirs @@ -155,6 +162,9 @@ public class JpegImageMetadata implement } public TiffImageData getRawImageData() { +if (exif == null) { +return null; +} List? extends IImageMetadataItem dirs = exif.getDirectories(); for (int i = 0; i dirs.size(); i++) { TiffImageMetadata.Directory dir = (TiffImageMetadata.Directory) dirs
svn commit: r1331291 - in /commons/proper/imaging/trunk/src: main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterPalette.java test/data/images/tiff/4/ test/
Author: damjan Date: Fri Apr 27 08:21:25 2012 New Revision: 1331291 URL: http://svn.apache.org/viewvc?rev=1331291view=rev Log: Speed up reading paletted TIFF files. Jira issue key: SANSELAN-75 Submitted by: Gary Lucas gwlucas at sonalysts dot com Added: commons/proper/imaging/trunk/src/test/data/images/tiff/4/ commons/proper/imaging/trunk/src/test/data/images/tiff/4/IndexColorPalette.tif (with props) Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterPalette.java Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterPalette.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterPalette.java?rev=1331291r1=1331290r2=1331291view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterPalette.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/photometricinterpreters/PhotometricInterpreterPalette.java Fri Apr 27 08:21:25 2012 @@ -24,6 +24,13 @@ import org.apache.commons.imaging.common public class PhotometricInterpreterPalette extends PhotometricInterpreter { private final int[] fColorMap; + +/** + * The color map of integer ARGB values tied to the + * pixel index of the palette + */ +private final int[] indexColorMap; + public PhotometricInterpreterPalette(int fSamplesPerPixel, int fBitsPerSample[], int Predictor, int width, int height, @@ -32,24 +39,26 @@ public class PhotometricInterpreterPalet super(fSamplesPerPixel, fBitsPerSample, Predictor, width, height); this.fColorMap = fColorMap; + +int fBitsPerPixel = bitsPerSample[0]; +int colormap_scale = (1 fBitsPerPixel); +indexColorMap = new int[colormap_scale]; +for (int index = 0; index colormap_scale; index++) +{ +int red = (fColorMap[index]8)0xff; +int green = (fColorMap[index + (colormap_scale)]8)0xff; +int blue = (fColorMap[index + (2 * colormap_scale)]8)0xff; +indexColorMap[index] = +0xff00 | (red 16) | (green 8) | blue; +} + + } @Override public void interpretPixel(ImageBuilder imageBuilder, int samples[], int x, int y) throws ImageReadException, IOException { -int fBitsPerPixel = bitsPerSample[0]; -int colormap_scale = (1 fBitsPerPixel); -//int expected_colormap_size = 3 * (1 fBitsPerPixel); - -int index = samples[0]; -int red = fColorMap[index] 8; -int green = fColorMap[index + (colormap_scale)] 8; -int blue = fColorMap[index + (2 * colormap_scale)] 8; - -int alpha = 0xff; -int rgb = (alpha 24) | (red 16) | (green 8) | (blue 0); -imageBuilder.setRGB(x, y, rgb); - +imageBuilder.setRGB(x, y, indexColorMap[samples[0]]); } } \ No newline at end of file Added: commons/proper/imaging/trunk/src/test/data/images/tiff/4/IndexColorPalette.tif URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/test/data/images/tiff/4/IndexColorPalette.tif?rev=1331291view=auto == Binary file - no diff available. Propchange: commons/proper/imaging/trunk/src/test/data/images/tiff/4/IndexColorPalette.tif -- svn:mime-type = image/tiff
svn commit: r1331325 - in /commons/proper/imaging/trunk/src: main/java/org/apache/commons/imaging/formats/tiff/TiffImageMetadata.java test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifRewrite
Author: damjan Date: Fri Apr 27 09:54:55 2012 New Revision: 1331325 URL: http://svn.apache.org/viewvc?rev=1331325view=rev Log: Allow TIFF fields to change size during encoding. Fix a broken test that assumes they never do. Jira issue key: SANSELAN-77 Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageMetadata.java commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifRewriteTest.java Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageMetadata.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageMetadata.java?rev=1331325r1=1331324r2=1331325view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageMetadata.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageMetadata.java Fri Apr 27 09:54:55 2012 @@ -164,7 +164,6 @@ public class TiffImageMetadata extends I TagInfo tagInfo = srcField.tagInfo; FieldType fieldType = srcField.fieldType; -int count = srcField.length; //byte bytes[] = srcField.fieldType.getRawBytes(srcField); //Debug.debug(tagInfo, tagInfo); @@ -182,6 +181,7 @@ public class TiffImageMetadata extends I //+ Integer.toHexString(srcField.tag) //+ ) bytes, bytes); +int count = bytes.length / fieldType.length; TiffOutputField dstField = new TiffOutputField( srcField.tag, tagInfo, fieldType, count, bytes); dstField.setSortHint(srcField.getSortHint()); Modified: commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifRewriteTest.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifRewriteTest.java?rev=1331325r1=1331324r2=1331325view=diff == --- commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifRewriteTest.java (original) +++ commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifRewriteTest.java Fri Apr 27 09:54:55 2012 @@ -419,16 +419,7 @@ public class ExifRewriteTest extends Exi assertEquals(oldField.tag, newField.tag); assertEquals(dirType.intValue(), newField.directoryType); assertEquals(oldField.directoryType, newField.directoryType); -assertEquals(oldField.length, newField.length); -assertEquals(oldField.isLocalValue(), newField.isLocalValue()); - -if (oldField.tag == 0x202) -{ -// ignore jpg from raw length value. may have off-by-one bug in certain cameras. -// i.e. Sony DCR-PC110 -continue; -} - + if (oldField.fieldType == TiffFieldTypeConstants.FIELD_TYPE_ASCII) { // Sanselan currently doesn't correctly rewrite @@ -448,6 +439,16 @@ public class ExifRewriteTest extends Exi continue; } +assertEquals(oldField.length, newField.length); +assertEquals(oldField.isLocalValue(), newField.isLocalValue()); + +if (oldField.tag == 0x202) +{ +// ignore jpg from raw length value. may have off-by-one bug in certain cameras. +// i.e. Sony DCR-PC110 +continue; +} + if (!oldField.tagInfo.isOffset()) { if (oldField.tagInfo.isText())
svn commit: r1335172 - in /commons/proper/imaging/trunk: pom.xml src/site/xdoc/issue-tracking.xml
Author: damjan Date: Mon May 7 18:23:26 2012 New Revision: 1335172 URL: http://svn.apache.org/viewvc?rev=1335172view=rev Log: Update the Jira URL and PID to the new IMAGING project. Modified: commons/proper/imaging/trunk/pom.xml commons/proper/imaging/trunk/src/site/xdoc/issue-tracking.xml Modified: commons/proper/imaging/trunk/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/pom.xml?rev=1335172r1=1335171r2=1335172view=diff == --- commons/proper/imaging/trunk/pom.xml (original) +++ commons/proper/imaging/trunk/pom.xml Mon May 7 18:23:26 2012 @@ -52,7 +52,7 @@ issueManagement systemJira/system -urlhttp://issues.apache.org/jira/browse/SANSELAN/url +urlhttp://issues.apache.org/jira/browse/IMAGING/url /issueManagement inceptionYear2007/inceptionYear @@ -65,8 +65,8 @@ maven.compile.target1.5/maven.compile.target commons.componentidimaging/commons.componentid commons.release.version1.0/commons.release.version -commons.jira.idSANSELAN/commons.jira.id -commons.jira.pid12310720/commons.jira.pid +commons.jira.idIMAGING/commons.jira.id +commons.jira.pid12313421/commons.jira.pid commons.osgi.exportorg.apache.commons.imaging.*;version=${project.version};-noimport:=true/commons.osgi.export commons.binary.suffix / project.build.sourceEncodingUTF-8/project.build.sourceEncoding Modified: commons/proper/imaging/trunk/src/site/xdoc/issue-tracking.xml URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/site/xdoc/issue-tracking.xml?rev=1335172r1=1335171r2=1335172view=diff == --- commons/proper/imaging/trunk/src/site/xdoc/issue-tracking.xml (original) +++ commons/proper/imaging/trunk/src/site/xdoc/issue-tracking.xml Mon May 7 18:23:26 2012 @@ -43,15 +43,15 @@ limitations under the License. -- document properties -titleCommons Sanselan Issue tracking/title +titleCommons Imaging Issue tracking/title author email=d...@commons.apache.orgCommons Documentation Team/author /properties body -section name=Commons Sanselan Issue tracking +section name=Commons Imaging Issue tracking p - Commons Sanselan uses a href=http://issues.apache.org/jira/;ASF JIRA/a for tracking issues. - See the a href=http://issues.apache.org/jira/browse/SANSELAN;Commons Sanselan JIRA project page/a. + Commons Imaging uses a href=http://issues.apache.org/jira/;ASF JIRA/a for tracking issues. + See the a href=http://issues.apache.org/jira/browse/IMAGING;Commons Imaging JIRA project page/a. /p p @@ -63,15 +63,15 @@ limitations under the License. p If you would like to report a bug, or raise an enhancement request with - Commons Sanselan please do the following: + Commons Imaging please do the following: ol -lia href=http://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=trueamp;pid=12310720amp;sorter/field=issuekeyamp;sorter/order=DESCamp;status=1amp;status=3amp;status=4;Search existing open bugs/a. +lia href=http://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=trueamp;pid=12313421amp;sorter/field=issuekeyamp;sorter/order=DESCamp;status=1amp;status=3amp;status=4;Search existing open bugs/a. If you find your issue listed then please add a comment with your details./li lia href=mail-lists.htmlSearch the mailing list archive(s)/a. You may find your issue or idea has already been discussed./li liDecide if your issue is a bug or an enhancement./li -liSubmit either a a href=http://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12310720amp;issuetype=1amp;priority=4amp;assignee=-1;bug report/a -or a href=http://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12310720amp;issuetype=4amp;priority=4amp;assignee=-1;enhancement request/a./li +liSubmit either a a href=http://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12313421amp;issuetype=1amp;priority=4amp;assignee=-1;bug report/a +or a href=http://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12313421amp;issuetype=4amp;priority=4amp;assignee=-1;enhancement request/a./li /ol /p @@ -80,7 +80,7 @@ limitations under the License. ul lithe more information you provide, the better we can help you/li litest cases are vital, particularly for any proposed enhancements/li -lithe developers of Commons Sanselan are all unpaid volunteers/li +lithe developers of Commons Imaging are all unpaid volunteers/li /ul /p @@ -92,9 +92,9 @@ limitations under the License. p You may also find these links useful: ul -lia href=http://issues.apache.org/jira/secure
svn commit: r1335936 - in /commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff: TiffElement.java TiffImageData.java TiffReader.java datareaders/DataReaderStrips.java dat
Author: damjan Date: Wed May 9 05:58:09 2012 New Revision: 1335936 URL: http://svn.apache.org/viewvc?rev=1335936view=rev Log: Reduce memory usage when reading TIFF files. Jira issue key: IMAGING-70 Submitted by: Gary Lucas gwlucas at sonalysts dot com Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffElement.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageData.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffReader.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderStrips.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderTiled.java Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffElement.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffElement.java?rev=1335936r1=1335935r2=1335936view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffElement.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffElement.java Wed May 9 05:58:09 2012 @@ -54,6 +54,10 @@ public abstract class TiffElement this.data = data; } + +public byte []getData(){ +return data; +} } Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageData.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageData.java?rev=1335936r1=1335935r2=1335936view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageData.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageData.java Wed May 9 05:58:09 2012 @@ -20,6 +20,7 @@ package org.apache.commons.imaging.forma import java.io.IOException; import org.apache.commons.imaging.ImageReadException; +import org.apache.commons.imaging.common.bytesource.ByteSourceFile; import org.apache.commons.imaging.formats.tiff.datareaders.DataReader; import org.apache.commons.imaging.formats.tiff.datareaders.DataReaderStrips; import org.apache.commons.imaging.formats.tiff.datareaders.DataReaderTiled; @@ -141,4 +142,30 @@ public abstract class TiffImageData } } + +public static class ByteSourceData extends Data +{ +ByteSourceFile byteSourceFile ; +public ByteSourceData(int offset, int length, ByteSourceFile byteSource) +{ +super(offset, length, new byte[0]); +byteSourceFile = byteSource; +} + +@Override +public String getElementDescription(boolean verbose) +{ +return Tiff image data: + data.length + bytes; +} + + +public byte[] getData() +{ +try { +return byteSourceFile.getBlock(offset, length); +} catch (IOException ioex) { +} +return new byte[0]; +} +} } \ No newline at end of file Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffReader.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffReader.java?rev=1335936r1=1335935r2=1335936view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffReader.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffReader.java Wed May 9 05:58:09 2012 @@ -26,6 +26,7 @@ import org.apache.commons.imaging.Format import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.common.BinaryFileParser; import org.apache.commons.imaging.common.bytesource.ByteSource; +import org.apache.commons.imaging.common.bytesource.ByteSourceFile; import org.apache.commons.imaging.formats.tiff.TiffDirectory.ImageDataElement; import org.apache.commons.imaging.formats.tiff.constants.ExifTagConstants; import org.apache.commons.imaging.formats.tiff.constants.TiffConstants; @@ -468,14 +469,25 @@ public class TiffReader extends BinaryFi TiffDirectory directory) throws ImageReadException, IOException { + ListImageDataElement elements = directory.getTiffRawImageDataElements(); TiffImageData.Data data[] = new TiffImageData.Data[elements.size
svn commit: r1335939 - in /commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff: TiffElement.java TiffImageData.java
Author: damjan Date: Wed May 9 06:07:56 2012 New Revision: 1335939 URL: http://svn.apache.org/viewvc?rev=1335939view=rev Log: Fix some spacing. Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffElement.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageData.java Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffElement.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffElement.java?rev=1335939r1=1335938r2=1335939view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffElement.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffElement.java Wed May 9 06:07:56 2012 @@ -55,7 +55,7 @@ public abstract class TiffElement this.data = data; } -public byte []getData(){ +public byte[] getData() { return data; } Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageData.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageData.java?rev=1335939r1=1335938r2=1335939view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageData.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageData.java Wed May 9 06:07:56 2012 @@ -143,7 +143,7 @@ public abstract class TiffImageData } -public static class ByteSourceData extends Data +public static class ByteSourceData extends Data { ByteSourceFile byteSourceFile ; public ByteSourceData(int offset, int length, ByteSourceFile byteSource)
svn commit: r1335943 - in /commons/proper/imaging/trunk/src: main/java/org/apache/commons/imaging/formats/tiff/datareaders/ test/data/images/tiff/5/
Author: damjan Date: Wed May 9 06:41:40 2012 New Revision: 1335943 URL: http://svn.apache.org/viewvc?rev=1335943view=rev Log: Fixed the differencing predictor for tiled TIFF images. Added 2 test images that use LZW compression with differencing, one is tiled and the other uses strips. Jira issue key: IMAGING-33 Added: commons/proper/imaging/trunk/src/test/data/images/tiff/5/ commons/proper/imaging/trunk/src/test/data/images/tiff/5/Oregon Scientific DS6639 - DSC_0307 - small - LZW - strips.tif (with props) commons/proper/imaging/trunk/src/test/data/images/tiff/5/Oregon Scientific DS6639 - DSC_0307 - small - LZW - tiled.tif (with props) Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReader.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderStrips.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderTiled.java Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReader.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReader.java?rev=1335943r1=1335942r2=1335943view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReader.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReader.java Wed May 9 06:41:40 2012 @@ -91,16 +91,19 @@ public abstract class DataReader impleme } } -protected int[] applyPredictor(int samples[], int x) +protected void resetPredictor() { +for (int i = 0; i last.length; i++) { +last[i] = 0; +} +} + +protected int[] applyPredictor(int samples[]) { if (predictor == 2) // Horizontal differencing. { for (int i = 0; i samples.length; i++) { -if (x 0) -{ -samples[i] = 0xff (samples[i] + last[i]); -} +samples[i] = 0xff (samples[i] + last[i]); last[i] = samples[i]; } } Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderStrips.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderStrips.java?rev=1335943r1=1335942r2=1335943view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderStrips.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderStrips.java Wed May 9 06:41:40 2012 @@ -61,13 +61,14 @@ public final class DataReaderStrips exte return; } int[] samples = new int[bitsPerSample.length]; +resetPredictor(); for (int i = 0; i pixels_per_strip; i++) { getSamplesAsBytes(bis, samples); if (x width) { -samples = applyPredictor(samples, x); +samples = applyPredictor(samples); photometricInterpreter.interpretPixel(imageBuilder, samples, x, y); } @@ -76,6 +77,7 @@ public final class DataReaderStrips exte if (x = width) { x = 0; +resetPredictor(); y++; bis.flushCache(); if (y = height) Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderTiled.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderTiled.java?rev=1335943r1=1335942r2=1335943view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderTiled.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderTiled.java Wed May 9 06:41:40 2012 @@ -68,6 +68,7 @@ public final class DataReaderTiled exten int tileX = 0, tileY = 0; int[] samples = new int[bitsPerSample.length]; +resetPredictor(); for (int i = 0; i pixelsPerTile; i++) { @@ -78,7 +79,7 @@ public final class DataReaderTiled exten if ((x width) (y height)) { -samples = applyPredictor(samples, x
svn commit: r1342497 - /commons/proper/imaging/trunk/pom.xml
Author: damjan Date: Fri May 25 04:20:12 2012 New Revision: 1342497 URL: http://svn.apache.org/viewvc?rev=1342497view=rev Log: Fix a typo in the POM assembly section. Modified: commons/proper/imaging/trunk/pom.xml Modified: commons/proper/imaging/trunk/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/pom.xml?rev=1342497r1=1342496r2=1342497view=diff == --- commons/proper/imaging/trunk/pom.xml (original) +++ commons/proper/imaging/trunk/pom.xml Fri May 25 04:20:12 2012 @@ -83,7 +83,7 @@ configuration descriptors descriptorsrc/main/assembly/bin.xml/descriptor -descriptorsrc/maim/assembly/src.xml/descriptor +descriptorsrc/main/assembly/src.xml/descriptor /descriptors tarLongFileModegnu/tarLongFileMode /configuration
svn commit: r1342880 - /commons/proper/imaging/trunk/pom.xml
Author: damjan Date: Sat May 26 10:18:01 2012 New Revision: 1342880 URL: http://svn.apache.org/viewvc?rev=1342880view=rev Log: Added some reporting plugins. Modified: commons/proper/imaging/trunk/pom.xml Modified: commons/proper/imaging/trunk/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/pom.xml?rev=1342880r1=1342879r2=1342880view=diff == --- commons/proper/imaging/trunk/pom.xml (original) +++ commons/proper/imaging/trunk/pom.xml Sat May 26 10:18:01 2012 @@ -197,6 +197,32 @@ version2.4.0/version /plugin plugin +groupIdorg.codehaus.mojo/groupId +artifactIdjavancss-maven-plugin/artifactId +version2.0/version + /plugin + plugin +groupIdorg.apache.maven.plugins/groupId +artifactIdmaven-changes-plugin/artifactId +version${commons.changes.version}/version +configuration + issueLinkTemplate%URL%/%ISSUE%/issueLinkTemplate +/configuration +reportSets + reportSet +reports + reportchanges-report/report + reportjira-report/report +/reports + /reportSet +/reportSets + /plugin + plugin +groupIdorg.apache.maven.plugins/groupId +artifactIdmaven-checkstyle-plugin/artifactId +version2.9.1/version + /plugin + plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-pmd-plugin/artifactId version2.7.1/version @@ -204,6 +230,18 @@ targetJdk${maven.compile.target}/targetJdk /configuration /plugin + plugin +groupIdorg.codehaus.mojo/groupId +artifactIdtaglist-maven-plugin/artifactId +version2.4/version +configuration + tags +tagTODO/tag +tagNOPMD/tag +tagNOTE/tag + /tags +/configuration + /plugin /plugins /reporting
svn commit: r1342887 - in /commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging: common/ formats/jpeg/iptc/ formats/tiff/constants/ formats/tiff/taginfos/
Author: damjan Date: Sat May 26 11:33:35 2012 New Revision: 1342887 URL: http://svn.apache.org/viewvc?rev=1342887view=rev Log: Add ASL licence headers to .java files that don't have them. Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/common/ImageBuilder.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcTypes.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AdobePageMaker6TagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AdobePhotoshopTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AliasSketchbookProTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/DcfTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/DngTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/GdalLibraryTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/GeoTiffTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/HylaFaxTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/MicrosoftHdPhotoTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/MicrosoftTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/MolecularDynamicsGelTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/OceScanjobTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/Rfc2301TagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/Tiff4TagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffEpTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/WangTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoAscii.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoAsciiOrByte.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/taginfos/TagInfoAsciiOrRational.java Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/common/ImageBuilder.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/common/ImageBuilder.java?rev=1342887r1=1342886r2=1342887view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/common/ImageBuilder.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/common/ImageBuilder.java Sat May 26 11:33:35 2012 @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.apache.commons.imaging.common; import java.awt.image.BufferedImage; Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcTypes.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcTypes.java?rev=1342887r1=1342886r2=1342887view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcTypes.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcTypes.java Sat May 26 11:33:35 2012 @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under
svn commit: r1342891 - in /commons/proper/imaging/trunk/src/site: site.xml xdoc/justification.xml xdoc/sampleusage.xml
Author: damjan Date: Sat May 26 12:48:28 2012 New Revision: 1342891 URL: http://svn.apache.org/viewvc?rev=1342891view=rev Log: Update website, fix some broken links and remove old code. Jira issue key: IMAGING-5 Modified: commons/proper/imaging/trunk/src/site/site.xml commons/proper/imaging/trunk/src/site/xdoc/justification.xml commons/proper/imaging/trunk/src/site/xdoc/sampleusage.xml Modified: commons/proper/imaging/trunk/src/site/site.xml URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/site/site.xml?rev=1342891r1=1342890r2=1342891view=diff == --- commons/proper/imaging/trunk/src/site/site.xml (original) +++ commons/proper/imaging/trunk/src/site/site.xml Sat May 26 12:48:28 2012 @@ -28,7 +28,6 @@ item name=Mailing Lists href=/mail-lists.html/ item name=Issue Tracking href=/issue-tracking.html/ item name=Source Repository href=/source-repository.html/ - item name=Documentation href=http://cwiki.apache.org/SANSELAN// item name=Javadoc href=/apidocs/index.html/ item name=Downloadhref=/download_imaging.cgi/ /menu Modified: commons/proper/imaging/trunk/src/site/xdoc/justification.xml URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/site/xdoc/justification.xml?rev=1342891r1=1342890r2=1342891view=diff == --- commons/proper/imaging/trunk/src/site/xdoc/justification.xml (original) +++ commons/proper/imaging/trunk/src/site/xdoc/justification.xml Sat May 26 12:48:28 2012 @@ -26,11 +26,10 @@ limitations under the License. p Why another image library? There are so many already. -see: a href=http://fightingquaker.com/sanselan/#references;http://fightingquaker.com/sanselan/#references/a /p p -This library is Pure Java. Consequently it's slow, but perfectly portable. +Apache Commons Imaging is Pure Java. Consequently it's slow, but perfectly portable. /p p @@ -43,15 +42,15 @@ limitations under the License. p Most other libraries offer little or incomplete support for ICC Profiles. -Sanselan can extract and (simply) parse embedded ICC Profiles. -Moreover, sanselan applies the icc profile by default, coverting read images to sRGB. +Commons Imaging can extract and (simply) parse embedded ICC Profiles. +Moreover, it applies the ICC profile by default, coverting read images to sRGB. This means images are color-corrected by default. see: a href=http://en.wikipedia.org/wiki/International_Color_Consortium;http://en.wikipedia.org/wiki/International_Color_Consortium/a, a href=http://en.wikipedia.org/wiki/SRGB;http://en.wikipedia.org/wiki/SRGB/a /p p -Sanselan also lets you read in image info (ie. width, height or colorspace) and metadata without +Commons Imaging also lets you read in image info (ie. width, height or colorspace) and metadata without reading the entire image. It presents image info and metadata in a format-neutral manner. It also gives easy, structured access to format-specific info. /p @@ -69,7 +68,7 @@ limitations under the License. p Ultimately, other libraries didn't quite fill my requirements, though there are many good ones out there. -What's really called for is a free, portable, feature complete library that ISN'T pure Java +What could be interesting is to get a free, portable, feature complete library that ISN'T pure Java - ie. one that uses JNI, at least for JPEG, anyhow. The obvious solution would be a JNI wrapper around libtiff, libjpeg, libpng, libgif/libungif, etc. imageloader uses this approach, but is unfinished. @@ -80,15 +79,15 @@ limitations under the License. /p p -Sanselan also includes a number of useful functions such as guess an image's format by examining its magic numbers (header info). +Commons Imaging also includes a number of useful functions such as guess an image's format by examining its magic numbers (header info). /p p -Sanselan aims to be transparent. There are no hidden buffers to dispose, no blocking calls, no native memory to free. +Commons Imaging aims to be transparent. There are no hidden buffers to dispose, no blocking calls, no native memory to free. /p p -The ColorConversions class offers methods to convert between the following color spaces: CIE-L*CH°, CIE-L*ab, CIE-L*uv, +The ColorConversions class offers methods to convert between the following color spaces: CIE-L*CH�, CIE-L*ab, CIE-L*uv, CMY, CMYK, HSL, HSV, Hunter-Lab, RGB, XYZ and Yxy (algorithms courtesy of EasyRGB's). see: a href=http://www.easyrgb.com/;http://www.easyrgb.com//a /p Modified: commons/proper/imaging/trunk/src/site/xdoc/sampleusage.xml URL: http://svn.apache.org/viewvc/commons/proper/imaging
svn commit: r1342896 - in /commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging: ./ formats/jpeg/exif/ formats/jpeg/iptc/ formats/jpeg/xmp/
Author: damjan Date: Sat May 26 13:29:12 2012 New Revision: 1342896 URL: http://svn.apache.org/viewvc?rev=1342896view=rev Log: Fixed Javadoc broken and missing links. Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/Imaging.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/JpegIptcRewriter.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/JpegXmpRewriter.java Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/Imaging.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/Imaging.java?rev=1342896r1=1342895r2=1342896view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/Imaging.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/Imaging.java Sat May 26 13:29:12 2012 @@ -48,9 +48,9 @@ import org.apache.commons.imaging.util.D * All of Imaging's methods are static. * p * See the source of the SampleUsage class and other classes in the - * org.apache.commons.sanselan.examples package for examples. + * org.apache.commons.imaging.examples package for examples. * - * @see org.apache.commons.sanselan.examples.SampleUsage + * @see a href=https://svn.apache.org/repos/asf/commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/examples/SampleUsage.java;org.apache.commons.imaging.examples.SampleUsage/a */ public abstract class Imaging implements ImagingConstants { 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=1342896r1=1342895r2=1342896view=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 Sat May 26 13:29:12 2012 @@ -45,7 +45,7 @@ import org.apache.commons.imaging.util.D * p * See the source of the ExifMetadataUpdateExample class for example usage. * - * @see org.apache.commons.sanselan.examples.WriteExifMetadataExample + * @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 { @@ -62,7 +62,7 @@ public class ExifRewriter extends Binary * p * @param byteOrder byte order of EXIF segment. Optional. See BinaryConstants class. * - * @see org.apache.commons.sanselan.common.BinaryConstants + * @see org.apache.commons.imaging.common.BinaryConstants */ public ExifRewriter(int byteOrder) { 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=1342896r1=1342895r2=1342896view=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 Sat May 26 13:29:12 2012 @@ -36,11 +36,6 @@ import org.apache.commons.imaging.format /** * Interface for Exif write/update/remove functionality for Jpeg/JFIF images. - * p - * p - * See the source of the IPTCUpdateExample class for example usage. - * - * @see org.apache.commons.sanselan.examples.WriteIPTCExample */ public class JpegIptcRewriter extends JpegRewriter implements IptcConstants { 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=1342896r1=1342895r2=1342896view=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
svn commit: r1342903 - /commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/examples/ApacheImagingSpeedAndMemoryTest.java
Author: damjan Date: Sat May 26 14:29:55 2012 New Revision: 1342903 URL: http://svn.apache.org/viewvc?rev=1342903view=rev Log: Include a test utility for timing and memory in project example classes. Jira issue key: IMAGING-61 Submitted by: Gary Lucas gwlucas at sonalysts dot com Added: commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/examples/ApacheImagingSpeedAndMemoryTest.java (with props) Added: commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/examples/ApacheImagingSpeedAndMemoryTest.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/examples/ApacheImagingSpeedAndMemoryTest.java?rev=1342903view=auto == --- commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/examples/ApacheImagingSpeedAndMemoryTest.java (added) +++ commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/examples/ApacheImagingSpeedAndMemoryTest.java Sat May 26 14:29:55 2012 @@ -0,0 +1,290 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +/ + * Explanation of Use and Rationale For Procedures + * + * This class is intended to serve as a test stand for loading + * images using the Apache Imaging (nee Sanselan) package. + * It performs a loop that loads a specified image multiple times + * recording both memory and time required for the loading process. + * + * The notes given below explain some of the operations of this + * test class and the reasons they were designed as they are. + * This test is by no means to be considered the last word in how + * to write a test application. The techniques described below have + * demonstrated themselves useful and relevant in developing speed + * enhancements for some of the Apache Imaging operations. But I know + * I haven't thought of everything and am actually hoping that + * someone will have suggestions for improvements. + * + * + * Prerequisites to Testing + * + * Whenever testing software performance, particularly timing, + * there are a few important considerations that should be observed: + * + * a) Get a clean testing environment. In a modern computer + * system, there are dozens of processes running. To whatever + * degree possible, make sure you are not running competing + * processes that will consume computer resources and contaminate + * your timing results. + * + * b) Make sure you are testing what you think you are testing. + * This guideline is especially true when comparing two different + * approaches. Eliminate as many variables from the analysis + * as you possible can. + * + * c) When writing or modifying code, remember that no matter how + * obvious and self-evidentially superior a particular approach + * may seem, you don't really know if it's an improvement until you + * test it. If nothing else, the experience of computer programming + * teaches us to not to take anything for granted. + * + * d) Make sure the JVM is allowed a sufficiently large maximum + * memory size. Putting aside the fact that the default size + * for the maximum memory use of the JVM could be too small for + * handling test images, we also want to allocate a sufficiently + * large memory size to ensure that it doesn't get too close to + * the maximum size when performing timing tests. When the JVM + * detects that it is running up against the limits of its + * maximum memory size setting, it triggers garbage collection + * operations that can contaminate timing values. + *I usually try to set the maximum memory size to be at least + * twice what I think I will need. Traditionally, the memory + * size for the JVM is quite modest, perhaps 256 megabytes. You + * can alter that value by using something like the following + * specification (check your own JVM version for alternate values): + *-Xmx768M (maximum of 768 megabytes) + * + * + * + * + * What
svn commit: r1342914 [5/5] - in /commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging: ./ color/ common/ common/bytesource/ common/itu_t4/ common/mylzw/
Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/common/itu_t4/T4_T6_Tables.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/common/itu_t4/T4_T6_Tables.java?rev=1342914r1=1342913r2=1342914view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/common/itu_t4/T4_T6_Tables.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/common/itu_t4/T4_T6_Tables.java Sat May 26 15:35:04 2012 @@ -22,12 +22,12 @@ class T4_T6_Tables { public static class Entry { String bitString; Integer value; - + public Entry(String bitString, Integer value) { this.bitString = bitString; this.value = value; } - + public void writeBits(BitArrayOutputStream outputStream) { for (int i = 0; i bitString.length(); i++) { if (bitString.charAt(i) == '0') { @@ -38,225 +38,228 @@ class T4_T6_Tables { } } } - + public static final Entry[] whiteTerminatingCodes = { -new Entry(00110101, Integer.valueOf(0)), -new Entry(000111, Integer.valueOf(1)), -new Entry(0111, Integer.valueOf(2)), -new Entry(1000, Integer.valueOf(3)), -new Entry(1011, Integer.valueOf(4)), -new Entry(1100, Integer.valueOf(5)), -new Entry(1110, Integer.valueOf(6)), -new Entry(, Integer.valueOf(7)), -new Entry(10011, Integer.valueOf(8)), -new Entry(10100, Integer.valueOf(9)), -new Entry(00111, Integer.valueOf(10)), -new Entry(01000, Integer.valueOf(11)), -new Entry(001000, Integer.valueOf(12)), -new Entry(11, Integer.valueOf(13)), -new Entry(110100, Integer.valueOf(14)), -new Entry(110101, Integer.valueOf(15)), -new Entry(101010, Integer.valueOf(16)), -new Entry(101011, Integer.valueOf(17)), -new Entry(0100111, Integer.valueOf(18)), -new Entry(0001100, Integer.valueOf(19)), -new Entry(0001000, Integer.valueOf(20)), -new Entry(0010111, Integer.valueOf(21)), -new Entry(011, Integer.valueOf(22)), -new Entry(100, Integer.valueOf(23)), -new Entry(0101000, Integer.valueOf(24)), -new Entry(0101011, Integer.valueOf(25)), -new Entry(0010011, Integer.valueOf(26)), -new Entry(0100100, Integer.valueOf(27)), -new Entry(0011000, Integer.valueOf(28)), -new Entry(0010, Integer.valueOf(29)), -new Entry(0011, Integer.valueOf(30)), -new Entry(00011010, Integer.valueOf(31)), -new Entry(00011011, Integer.valueOf(32)), -new Entry(00010010, Integer.valueOf(33)), -new Entry(00010011, Integer.valueOf(34)), -new Entry(00010100, Integer.valueOf(35)), -new Entry(00010101, Integer.valueOf(36)), -new Entry(00010110, Integer.valueOf(37)), -new Entry(00010111, Integer.valueOf(38)), -new Entry(00101000, Integer.valueOf(39)), -new Entry(00101001, Integer.valueOf(40)), -new Entry(00101010, Integer.valueOf(41)), -new Entry(00101011, Integer.valueOf(42)), -new Entry(00101100, Integer.valueOf(43)), -new Entry(00101101, Integer.valueOf(44)), -new Entry(0100, Integer.valueOf(45)), -new Entry(0101, Integer.valueOf(46)), -new Entry(1010, Integer.valueOf(47)), -new Entry(1011, Integer.valueOf(48)), -new Entry(01010010, Integer.valueOf(49)), -new Entry(01010011, Integer.valueOf(50)), -new Entry(01010100, Integer.valueOf(51)), -new Entry(01010101, Integer.valueOf(52)), -new Entry(00100100, Integer.valueOf(53)), -new Entry(00100101, Integer.valueOf(54)), -new Entry(01011000, Integer.valueOf(55)), -new Entry(01011001, Integer.valueOf(56)), -new Entry(01011010, Integer.valueOf(57)), -new Entry(01011011, Integer.valueOf(58)), -new Entry(01001010, Integer.valueOf(59)), -new Entry(01001011, Integer.valueOf(60)), -new Entry(00110010, Integer.valueOf(61)), -new Entry(00110011, Integer.valueOf(62)), -new Entry(00110100, Integer.valueOf(63)), -}; - +new Entry(00110101, Integer.valueOf(0)), +new Entry(000111, Integer.valueOf(1)), +new Entry(0111, Integer.valueOf(2)), +new Entry(1000, Integer.valueOf(3)), +new Entry(1011, Integer.valueOf(4)), +new Entry(1100, Integer.valueOf(5)), +new Entry(1110, Integer.valueOf(6)), +new Entry(, Integer.valueOf(7)), +new Entry(10011, Integer.valueOf(8)), +new Entry(10100, Integer.valueOf(9)), +new Entry(00111,
svn commit: r1343007 - in /commons/proper/imaging/trunk: checkstyle.xml pom.xml src/main/java/org/apache/commons/imaging/ImagingConstants.java src/main/java/org/apache/commons/imaging/formats/tiff/con
Author: damjan Date: Sun May 27 07:29:54 2012 New Revision: 1343007 URL: http://svn.apache.org/viewvc?rev=1343007view=rev Log: Configure Checkstyle better. Added: commons/proper/imaging/trunk/checkstyle.xml (with props) Modified: commons/proper/imaging/trunk/pom.xml commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImagingConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/ExifTagConstants.java Added: commons/proper/imaging/trunk/checkstyle.xml URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/checkstyle.xml?rev=1343007view=auto == --- commons/proper/imaging/trunk/checkstyle.xml (added) +++ commons/proper/imaging/trunk/checkstyle.xml Sun May 27 07:29:54 2012 @@ -0,0 +1,40 @@ +?xml version=1.0? +!-- +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You under the Apache License, Version 2.0 +(the License); you may not use this file except in compliance with +the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an AS IS BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +-- + +!DOCTYPE module PUBLIC +-//Puppy Crawl//DTD Check Configuration 1.2//EN +http://www.puppycrawl.com/dtds/configuration_1_2.dtd; + +!-- Commons Imaging customization of default Checkstyle behavior -- + +module name=Checker + module name=FileTabCharacter +property name=eachLine value=true/ +property name=fileExtensions value=java, xml/ + /module + module name=NewlineAtEndOfFile +property name=fileExtensions value=java, xml/ + /module + module name=TreeWalker +property name=cacheFile value=target/cachefile/ +module name=AvoidStarImport/ +module name=RedundantImport/ +module name=UnusedImports/ + /module +/module + Propchange: commons/proper/imaging/trunk/checkstyle.xml -- svn:eol-style = native Modified: commons/proper/imaging/trunk/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/pom.xml?rev=1343007r1=1343006r2=1343007view=diff == --- commons/proper/imaging/trunk/pom.xml (original) +++ commons/proper/imaging/trunk/pom.xml Sun May 27 07:29:54 2012 @@ -221,6 +221,18 @@ groupIdorg.apache.maven.plugins/groupId artifactIdmaven-checkstyle-plugin/artifactId version2.9.1/version +inheritedfalse/inherited +configuration + configLocation${basedir}/checkstyle.xml/configLocation +/configuration +!-- Work around CHECKSTYLE-172 -- +reportSets + reportSet +reports + reportcheckstyle/report +/reports + /reportSet +/reportSets /plugin plugin groupIdorg.apache.maven.plugins/groupId Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImagingConstants.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImagingConstants.java?rev=1343007r1=1343006r2=1343007view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImagingConstants.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImagingConstants.java Sun May 27 07:29:54 2012 @@ -16,10 +16,6 @@ */ package org.apache.commons.imaging; -import java.io.InputStream; - -import org.apache.commons.imaging.formats.tiff.constants.TiffConstants; - public interface ImagingConstants { /** * Parameter key. Applies to read and write operations. @@ -38,7 +34,7 @@ public interface ImagingConstants { * Valid values: filename as string * p * - * @see InputStream + * @see java.io.InputStream */ public static final String PARAM_KEY_FILENAME = FILENAME; @@ -49,7 +45,7 @@ public interface ImagingConstants { * ImageFormat.IMAGE_FORMAT_PNG. * p * - * @see ImageFormat + * @see org.apache.commons.imaging.ImageFormat */ public static final String PARAM_KEY_FORMAT = FORMAT; @@ -65,7 +61,7 @@ public interface ImagingConstants { * TiffConstants.TIFF_COMPRESSION_PACKBITS. * p * - * @see TiffConstants + * @see
svn commit: r1343020 - in /commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging: ./ common/ formats/bmp/ formats/icns/ formats/jpeg/iptc/ formats/png/ formats/psd/ formats/tiff/ forma
Author: damjan Date: Sun May 27 09:58:39 2012 New Revision: 1343020 URL: http://svn.apache.org/viewvc?rev=1343020view=rev Log: Fix some Findbugs problems. Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/FormatCompliance.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/common/BinaryFileFunctions.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/common/MyByteArrayOutputStream.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/common/PackBits.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/bmp/BmpImageParser.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/icns/IcnsType.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/png/PngWriter.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/psd/ImageContents.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/psd/PsdHeaderInfo.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/psd/PsdImageParser.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffField.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/fieldtypes/FieldTypeAscii.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/icc/IccTag.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/icc/IccTagDataTypes.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/palette/ColorSpaceSubset.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/palette/PaletteFactory.java Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/FormatCompliance.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/FormatCompliance.java?rev=1343020r1=1343019r2=1343020view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/FormatCompliance.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/FormatCompliance.java Sun May 27 09:58:39 2012 @@ -19,6 +19,7 @@ package org.apache.commons.imaging; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.StringWriter; +import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; @@ -62,7 +63,7 @@ public class FormatCompliance { } public void dump() { -dump(new PrintWriter(new OutputStreamWriter(System.out))); +dump(new PrintWriter(new OutputStreamWriter(System.out, Charset.defaultCharset(; } public void dump(PrintWriter pw) { Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/common/BinaryFileFunctions.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/common/BinaryFileFunctions.java?rev=1343020r1=1343019r2=1343020view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/common/BinaryFileFunctions.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/common/BinaryFileFunctions.java Sun May 27 09:58:39 2012 @@ -20,8 +20,10 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.RandomAccessFile; +import java.nio.charset.Charset; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.ImageWriteException; @@ -49,7 +51,7 @@ public class BinaryFileFunctions impleme } public final void debugNumber(String msg, int data, int bytes) { -PrintWriter pw = new PrintWriter(System.out); +PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out, Charset.defaultCharset())); debugNumber(pw, msg, data, bytes); pw.flush(); } Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/common/MyByteArrayOutputStream.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/common/MyByteArrayOutputStream.java?rev=1343020r1=1343019r2=1343020view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/common/MyByteArrayOutputStream.java (original) +++ commons/proper/imaging/trunk/src/main/java/org
svn commit: r1343565 - in /commons/proper/imaging/trunk: README.txt pom.xml src/main/assembly/bin.xml src/main/assembly/src.xml
Author: damjan Date: Tue May 29 07:16:35 2012 New Revision: 1343565 URL: http://svn.apache.org/viewvc?rev=1343565view=rev Log: Update POM, assembly descriptors, and README.txt in preparation for a release. Modified: commons/proper/imaging/trunk/README.txt commons/proper/imaging/trunk/pom.xml commons/proper/imaging/trunk/src/main/assembly/bin.xml commons/proper/imaging/trunk/src/main/assembly/src.xml Modified: commons/proper/imaging/trunk/README.txt URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/README.txt?rev=1343565r1=1343564r2=1343565view=diff == --- commons/proper/imaging/trunk/README.txt (original) +++ commons/proper/imaging/trunk/README.txt Tue May 29 07:16:35 2012 @@ -1,11 +1,11 @@ = -Welcome to Apache Commons Sanselan http://commons.apache.org/sanselan/ +Welcome to Apache Commons Imaging http://commons.apache.org/imaging/ = License (see also LICENSE) == -Collective work: Copyright 2007-2009 The Apache Software Foundation. +Collective work: Copyright 2007-2012 The Apache Software Foundation. Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with @@ -29,7 +29,7 @@ Getting Started Mailing Lists - -To get involved with the Apache Commons Sanselan project, start by +To get involved with the Apache Commons Imaging project, start by having a look at our website (link at top of page) and join our mailing lists by sending an empty message to the Apache Commons mailing lists @@ -41,33 +41,33 @@ and the dev mailing list archives can be http://mail-archives.apache.org/mod_mbox/commons-dev/ -Please prefix the subject line of any messages with [sanselan]. +Please prefix the subject line of any messages with [imaging]. Downloading --- -The Commons Sanselan source code is available via Subversion at +The Commons Imaging source code is available via Subversion at - https://svn.apache.org/repos/asf/commons/proper/sanselan/trunk + https://svn.apache.org/repos/asf/commons/proper/imaging/trunk and anonymous access is available at - http://svn.apache.org/repos/asf/commons/proper/sanselan/trunk + http://svn.apache.org/repos/asf/commons/proper/imaging/trunk or with ViewVC at - http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/ + http://svn.apache.org/viewvc/commons/proper/imaging/trunk/ -To checkout the main Sanselan source tree, run +To checkout the main Imaging source tree, run - svn checkout http://svn.apache.org/repos/asf/commons/proper/sanselan/trunk/sanselan + svn checkout http://svn.apache.org/repos/asf/commons/proper/imaging/trunk/imaging Once you have a copy of the source code tree, you can use Apache Maven http://maven.apache.org/ -to build the project. You should use Maven 2 to build Sanselan. -The minimal command to build, test, and package all the main Sanselan +to build the project. You should use Maven 2 to build Imaging. +The minimal command to build, test, and package all the main Imaging components is: mvn install @@ -79,5 +79,5 @@ For more instructions, please see the do Credits === -See http://commons.apache.org/sanselan/team-list.html for the list of -Sanselan committers and main contributors. +See http://commons.apache.org/imaging/team-list.html for the list of +Imaging committers and main contributors. Modified: commons/proper/imaging/trunk/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/pom.xml?rev=1343565r1=1343564r2=1343565view=diff == --- commons/proper/imaging/trunk/pom.xml (original) +++ commons/proper/imaging/trunk/pom.xml Tue May 29 07:16:35 2012 @@ -89,6 +89,16 @@ /configuration /plugin plugin +artifactIdmaven-jar-plugin/artifactId +configuration + archive +manifestEntries + Extension-Nameorg.apache.commons.imaging/Extension-Name +/manifestEntries + /archive +/configuration + /plugin + plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-surefire-plugin/artifactId configuration @@ -195,6 +205,10 @@ groupIdorg.codehaus.mojo/groupId artifactIdfindbugs-maven-plugin/artifactId version2.4.0/version +configuration + thresholdNormal/threshold + effortDefault/effort +/configuration /plugin plugin groupIdorg.codehaus.mojo/groupId Modified: commons/proper/imaging/trunk/src/main/assembly/bin.xml URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/assembly/bin.xml?rev
svn commit: r1345260 - in /commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders: DataReaderStrips.java DataReaderTiled.java
Author: damjan Date: Fri Jun 1 15:59:00 2012 New Revision: 1345260 URL: http://svn.apache.org/viewvc?rev=1345260view=rev Log: Add a streamlined TIFF reader that reduces load time by a factor of 5. Jira issue key: IMAGING-69 Submitted by: Gary Lucas gwlucas at sonalysts dot com Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderStrips.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderTiled.java Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderStrips.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderStrips.java?rev=1345260r1=1345259r2=1345260view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderStrips.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/datareaders/DataReaderStrips.java Fri Jun 1 15:59:00 2012 @@ -25,6 +25,7 @@ import org.apache.commons.imaging.common import org.apache.commons.imaging.formats.tiff.TiffDirectory; import org.apache.commons.imaging.formats.tiff.TiffImageData; import org.apache.commons.imaging.formats.tiff.photometricinterpreters.PhotometricInterpreter; +import org.apache.commons.imaging.formats.tiff.photometricinterpreters.PhotometricInterpreterRgb; public final class DataReaderStrips extends DataReader { @@ -52,12 +53,122 @@ public final class DataReaderStrips exte private void interpretStrip(ImageBuilder imageBuilder, byte bytes[], int pixels_per_strip) throws ImageReadException, IOException { -ByteArrayInputStream bais = new ByteArrayInputStream(bytes); -BitInputStream bis = new BitInputStream(bais, byteOrder); - if (y = height) { return; } + +// changes added May 2012 +// In the original implementation, a general-case bit reader called +// getSamplesAsBytes is used to retrieve the samples (raw data values) +// for each pixel in the strip. These samples are then passed into a +// photogrammetric interpreter that converts them to ARGB pixel values +// and stores them in the image. Because the bit-reader must handle +// a large number of formats, it involves several conditional +// branches that must be executed each time a pixel is read. +// Depending on the size of an image, the same evaluations must be +// executed redundantly thousands and perhaps millions of times +// in order to process the complete collection of pixels. +// This code attempts to remove that redundancy by +// evaluating the format up-front and bypassing the general-format +// code for two commonly used data formats: the 8 bits-per-pixel +// and 24 bits-per-pixel cases. For these formats, the +// special case code achieves substantial reductions in image-loading +// time. In other cases, it simply falls through to the original code +// and continues to read the data correctly as it did in previous +// versions of this class. +// In addition to bypassing the getBytesForSample() method, +// the 24-bit case also implements a special block for RGB +// formatted images. To get a sense of the contributions of each +// optimization (removing getSamplesAsBytes and removing the +// photometric interpreter), consider the following results from tests +// conducted with large TIFF images using the 24-bit RGB format +// bypass getSamplesAsBytes: 67.5 % reduction +// bypass both optimizations: 77.2 % reduction +// +// +// Future Changes +// Both of the 8-bit and 24-bit blocks make the assumption that a strip +// always begins on x = 0 and that each strip exactly fills out the rows +// it contains (no half rows). The original code did not make this +// assumption, but the approach is consistent with the TIFF 6.0 spec +// (1992), +// and should probably be considered as an enhancement to the +// original general-case code block that remains from the original +// implementation. Taking this approach saves one conditional +// operation per pixel or about 5 percent of the total run time +// in the 8 bits/pixel case. + +// verify that all samples are one byte in size +boolean allSamplesAreOneByte = true; +for (int i = 0; i bitsPerSample.length; i++) { +if (bitsPerSample[i] != 8) { +allSamplesAreOneByte = false; +break; +} +} + +if (predictor != 2
svn commit: r1345475 - /commons/proper/imaging/trunk/NOTICE.txt
Author: damjan Date: Sat Jun 2 10:02:39 2012 New Revision: 1345475 URL: http://svn.apache.org/viewvc?rev=1345475view=rev Log: Update copyright notice and years in NOTICE.txt. Modified: commons/proper/imaging/trunk/NOTICE.txt Modified: commons/proper/imaging/trunk/NOTICE.txt URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/NOTICE.txt?rev=1345475r1=1345474r2=1345475view=diff == --- commons/proper/imaging/trunk/NOTICE.txt (original) +++ commons/proper/imaging/trunk/NOTICE.txt Sat Jun 2 10:02:39 2012 @@ -1,5 +1,5 @@ -Apache Imaging -Copyright 2007-2011 The Apache Software Foundation. +Apache Commons Imaging +Copyright 2007-2012 The Apache Software Foundation This product includes software developed at The Apache Software Foundation (http://www.apache.org/).
svn commit: r1345634 - /commons/proper/imaging/trunk/pom.xml
Author: damjan Date: Sun Jun 3 09:16:32 2012 New Revision: 1345634 URL: http://svn.apache.org/viewvc?rev=1345634view=rev Log: Upgrade to commons-parent POM version 25. Modified: commons/proper/imaging/trunk/pom.xml Modified: commons/proper/imaging/trunk/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/pom.xml?rev=1345634r1=1345633r2=1345634view=diff == --- commons/proper/imaging/trunk/pom.xml (original) +++ commons/proper/imaging/trunk/pom.xml Sun Jun 3 09:16:32 2012 @@ -28,7 +28,7 @@ parent groupIdorg.apache.commons/groupId artifactIdcommons-parent/artifactId -version24/version +version25/version /parent groupIdorg.apache.commons/groupId @@ -79,7 +79,6 @@ plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-assembly-plugin/artifactId -version2.3/version configuration descriptors descriptorsrc/main/assembly/bin.xml/descriptor
svn commit: r1138134 - in /commons/proper/sanselan/trunk/src: main/java/org/apache/sanselan/formats/bmp/ main/java/org/apache/sanselan/formats/bmp/pixelparsers/ test/data/images/bmp/3/
Author: damjan Date: Tue Jun 21 18:51:28 2011 New Revision: 1138134 URL: http://svn.apache.org/viewvc?rev=1138134view=rev Log: Parse the BMP version 2, 3, 4 and 5 headers. Decouple reading BI_BITFIELDS masks from reading the palette, and add a comment explaining why the palette can be present even for images that don't need it. In the case of version = 3 BMP files with BI_BITFIELDS compression, populate the alpha channel, and add a test case for this. Added: commons/proper/sanselan/trunk/src/test/data/images/bmp/3/ commons/proper/sanselan/trunk/src/test/data/images/bmp/3/V4-bitfields.bmp (with props) commons/proper/sanselan/trunk/src/test/data/images/bmp/3/info.txt Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/BmpHeaderInfo.java commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/BmpImageParser.java commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/pixelparsers/PixelParserBitFields.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/BmpHeaderInfo.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/BmpHeaderInfo.java?rev=1138134r1=1138133r2=1138134view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/BmpHeaderInfo.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/BmpHeaderInfo.java Tue Jun 21 18:51:28 2011 @@ -43,12 +43,43 @@ public class BmpHeaderInfo public final int colorsUsed; public final int colorsImportant; +public final int redMask; +public final int greenMask; +public final int blueMask; +public final int alphaMask; + +public final int colorSpaceType; +public final ColorSpace colorSpace; +public final int gammaRed; +public final int gammaGreen; +public final int gammaBlue; +public final int intent; +public final int profileData; +public final int profileSize; +public final int reservedV5; + +public static class ColorSpaceCoordinate +{ +public int x, y, z; +} + +public static class ColorSpace +{ +public ColorSpaceCoordinate red; +public ColorSpaceCoordinate green; +public ColorSpaceCoordinate blue; +} + public BmpHeaderInfo(byte identifier1, byte identifier2, int fileSize, int reserved, int bitmapDataOffset, int bitmapHeaderSize, int width, int height, int planes, int bitsPerPixel, int compression, int bitmapDataSize, int hResolution, int vResolution, int colorsUsed, -int colorsImportant) +int colorsImportant, int redMask, int greenMask, +int blueMask, int alphaMask, int colorSpaceType, +ColorSpace colorSpace, int gammaRed, int gammaGreen, +int gammaBlue, int intent, int profileData, +int profileSize, int reservedV5) { this.identifier1 = identifier1; this.identifier2 = identifier2; @@ -67,6 +98,20 @@ public class BmpHeaderInfo this.vResolution = vResolution; this.colorsUsed = colorsUsed; this.colorsImportant = colorsImportant; + +this.redMask = redMask; +this.greenMask = greenMask; +this.blueMask = blueMask; +this.alphaMask = alphaMask; +this.colorSpaceType = colorSpaceType; +this.colorSpace = colorSpace; +this.gammaRed = gammaRed; +this.gammaGreen = gammaGreen; +this.gammaBlue = gammaBlue; +this.intent = intent; +this.profileData = profileData; +this.profileSize = profileSize; +this.reservedV5 = reservedV5; } } \ No newline at end of file Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/BmpImageParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/BmpImageParser.java?rev=1138134r1=1138133r2=1138134view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/BmpImageParser.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/bmp/BmpImageParser.java Tue Jun 21 18:51:28 2011 @@ -104,19 +104,93 @@ public class BmpImageParser extends Imag int bitmapHeaderSize = read4Bytes(Bitmap Header Size, is, Not a Valid BMP File); -int width = read4Bytes(Width, is, Not a Valid BMP File); -int height = read4Bytes(Height, is, Not a Valid BMP File); -int planes = read2Bytes(Planes, is, Not a Valid BMP File); -int bitsPerPixel = read2Bytes(Bits Per Pixel, is, -Not a Valid BMP File); -int
svn commit: r1138156 - in /commons/proper/sanselan/trunk/src: main/java/org/apache/sanselan/formats/ico/IcoImageParser.java test/java/org/apache/sanselan/formats/ico/IcoRoundtripTest.java
Author: damjan Date: Tue Jun 21 20:05:54 2011 New Revision: 1138156 URL: http://svn.apache.org/viewvc?rev=1138156view=rev Log: Fix use of the alpha channel for 32 bit BI_RGB compressed ICO files. Test this. Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/ico/IcoImageParser.java commons/proper/sanselan/trunk/src/test/java/org/apache/sanselan/formats/ico/IcoRoundtripTest.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/ico/IcoImageParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/ico/IcoImageParser.java?rev=1138156r1=1138155r2=1138156view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/ico/IcoImageParser.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/ico/IcoImageParser.java Tue Jun 21 20:05:54 2011 @@ -341,21 +341,43 @@ public class IcoImageParser extends Imag int ColorsUsed = read4Bytes(ColorsUsed, is, Not a Valid ICO File); // ColorsUsed (4 bytes), we don?t use this (0) int ColorsImportant = read4Bytes(ColorsImportant, is, Not a Valid ICO File); // ColorsImportant (4 bytes), we don?t use this (0) +int RedMask = 0; +int GreenMask = 0; +int BlueMask = 0; +int AlphaMask = 0; +if (Compression == 3) +{ +RedMask = read4Bytes(RedMask, is, Not a Valid ICO File); +GreenMask = read4Bytes(GreenMask, is, Not a Valid ICO File); +BlueMask = read4Bytes(BlueMask, is, Not a Valid ICO File); +} +byte[] RestOfFile = readByteArray(RestOfFile, is.available(), is); if (Size != 40) throw new ImageReadException(Not a Valid ICO File: Wrong bitmap header size + Size); if (Planes != 1) throw new ImageReadException(Not a Valid ICO File: Planes can't be + Planes); +if (Compression == 0 BitCount == 32) +{ +// 32 BPP RGB icons need an alpha channel, but BMP files don't have +// one unless BI_BITFIELDS is used... +Compression = 3; +RedMask = 0x00ff; +GreenMask = 0xff00; +BlueMask = 0x00ff; +AlphaMask = 0xff00; +} + BitmapHeader header = new BitmapHeader(Size, Width, Height, Planes, BitCount, Compression, SizeImage, XPelsPerMeter, YPelsPerMeter, ColorsUsed, ColorsImportant); -int bitmapPixelsOffset = 14 + 40 + ((Compression == 3) ? 3*4 : 0) + +int bitmapPixelsOffset = 14 + 56 + 4 * ((ColorsUsed == 0 BitCount = 8) ? (1 BitCount) : ColorsUsed); -int bitmapSize = 14 + iconData.length; +int bitmapSize = 14 + 56 + RestOfFile.length; -ByteArrayOutputStream baos = new ByteArrayOutputStream(14 + iconData.length); +ByteArrayOutputStream baos = new ByteArrayOutputStream(bitmapSize); BinaryOutputStream bos = new BinaryOutputStream(baos, BinaryOutputStream.BYTE_ORDER_LITTLE_ENDIAN); @@ -365,7 +387,7 @@ public class IcoImageParser extends Imag bos.write4Bytes(0); bos.write4Bytes(bitmapPixelsOffset); -bos.write4Bytes(Size); +bos.write4Bytes(56); bos.write4Bytes(Width); bos.write4Bytes(Height / 2); bos.write2Bytes(Planes); @@ -376,7 +398,11 @@ public class IcoImageParser extends Imag bos.write4Bytes(YPelsPerMeter); bos.write4Bytes(ColorsUsed); bos.write4Bytes(ColorsImportant); -bos.write(iconData, 40, iconData.length - 40); +bos.write4Bytes(RedMask); +bos.write4Bytes(GreenMask); +bos.write4Bytes(BlueMask); +bos.write4Bytes(AlphaMask); +bos.write(RestOfFile); bos.flush(); ByteArrayInputStream bmpInputStream = new ByteArrayInputStream(baos.toByteArray()); @@ -402,41 +428,44 @@ public class IcoImageParser extends Imag throw ioEx; } -// FIXME: get BmpImageParser to support alpha, then uncomment below -//boolean allAlphasZero = true; -//if (BitCount == 32) -//{ -//for (int y = 0; allAlphasZero y bmpImage.getHeight(); y++) -//{ -//for (int x = 0; x bmpImage.getWidth(); x++) -//{ -//if ((bmpImage.getRGB(x, y) 0xff00) != 0) -//{ -//allAlphasZero = false; -//break; -//} -//} -//} -//} -BufferedImage resultImage = new BufferedImage(bmpImage.getWidth(), bmpImage.getHeight(), -BufferedImage.TYPE_INT_ARGB); -for (int y = 0; y resultImage.getHeight(); y
svn commit: r1139045 - in /commons/proper/sanselan/trunk/src: main/java/org/apache/sanselan/formats/png/PngImageParser.java test/java/org/apache/sanselan/formats/png/PngWriteReadTest.java
Author: damjan Date: Thu Jun 23 19:34:58 2011 New Revision: 1139045 URL: http://svn.apache.org/viewvc?rev=1139045view=rev Log: Transparency detection on PNG patch from Clement Escoffier, and my test for it. Jira issue key: SANSELAN-52 Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/PngImageParser.java commons/proper/sanselan/trunk/src/test/java/org/apache/sanselan/formats/png/PngWriteReadTest.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/PngImageParser.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/PngImageParser.java?rev=1139045r1=1139044r2=1139045view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/PngImageParser.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/PngImageParser.java Thu Jun 23 19:34:58 2011 @@ -547,8 +547,11 @@ public class PngImageParser extends Imag { isTransparent = true; pngChunktRNS = (PNGChunk) IHDRs.get(0); -} else -hasAlphaChannel(pngChunkIHDR.colorType); +} else { +// CE - Fix Alpha. +isTransparent = hasAlphaChannel(pngChunkIHDR.colorType); +// END FIX +} PNGChunkpHYs pngChunkpHYs = null; Modified: commons/proper/sanselan/trunk/src/test/java/org/apache/sanselan/formats/png/PngWriteReadTest.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/test/java/org/apache/sanselan/formats/png/PngWriteReadTest.java?rev=1139045r1=1139044r2=1139045view=diff == --- commons/proper/sanselan/trunk/src/test/java/org/apache/sanselan/formats/png/PngWriteReadTest.java (original) +++ commons/proper/sanselan/trunk/src/test/java/org/apache/sanselan/formats/png/PngWriteReadTest.java Thu Jun 23 19:34:58 2011 @@ -98,6 +98,16 @@ public class PngWriteReadTest extends Sa } } +public void testTransparency() throws IOException, ImageReadException, ImageWriteException +{ +// Test for https://issues.apache.org/jira/browse/SANSELAN-52 +int[][] smallAscendingPixels = getAscendingRawData(256, 256); +byte[] pngBytes = Sanselan.writeImageToBytes( +imageDataToBufferedImage(smallAscendingPixels), +ImageFormat.IMAGE_FORMAT_PNG, null); +assertTrue(Sanselan.getImageInfo(pngBytes).isTransparent()); +} + private BufferedImage imageDataToBufferedImage(int[][] rawData) { int width = rawData[0].length;
svn commit: r1147386 - in /commons/proper/sanselan/trunk/src: main/java/org/apache/sanselan/formats/jpeg/JpegUtils.java test/data/images/jpg/4/ test/data/images/jpg/4/0x00-to-0xFF-between-segments.jpg
Author: damjan Date: Sat Jul 16 09:11:03 2011 New Revision: 1147386 URL: http://svn.apache.org/viewvc?rev=1147386view=rev Log: Make JPEG parsing a lot more resilient: skip all bytes between the end of a segment and the next 0xFF followed by non-0xFF. Add a thorough test for this. Fixes one of the problems with SANSELAN-13. JIRA-Key: SANSELAN-13 Added: commons/proper/sanselan/trunk/src/test/data/images/jpg/4/ commons/proper/sanselan/trunk/src/test/data/images/jpg/4/0x00-to-0xFF-between-segments.jpg (with props) commons/proper/sanselan/trunk/src/test/data/images/jpg/4/info.txt Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/JpegUtils.java Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/JpegUtils.java URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/JpegUtils.java?rev=1147386r1=1147385r2=1147386view=diff == --- commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/JpegUtils.java (original) +++ commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/jpeg/JpegUtils.java Sat Jul 16 09:11:03 2011 @@ -65,10 +65,12 @@ public class JpegUtils extends BinaryFil for (int markerCount = 0; true; markerCount++) { -byte markerBytes[] = readByteArray(markerBytes, 2, is, -markerBytes); -int marker = convertByteArrayToShort(marker, markerBytes, -byteOrder); +byte[] markerBytes = new byte[2]; +do { +markerBytes[0] = markerBytes[1]; +markerBytes[1] = readByte(marker, is, Could not read marker); +} while ((0xff markerBytes[0]) != 0xff || (0xff markerBytes[1]) == 0xff); +int marker = ((0xff markerBytes[0]) 8) | (0xff markerBytes[1]); //Debug.debug(marker, marker + (0x + Integer.toHexString(marker) + )); //Debug.debug(markerBytes, markerBytes); Added: commons/proper/sanselan/trunk/src/test/data/images/jpg/4/0x00-to-0xFF-between-segments.jpg URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/test/data/images/jpg/4/0x00-to-0xFF-between-segments.jpg?rev=1147386view=auto == Binary file - no diff available. Propchange: commons/proper/sanselan/trunk/src/test/data/images/jpg/4/0x00-to-0xFF-between-segments.jpg -- svn:mime-type = application/octet-stream Added: commons/proper/sanselan/trunk/src/test/data/images/jpg/4/info.txt URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/test/data/images/jpg/4/info.txt?rev=1147386view=auto == --- commons/proper/sanselan/trunk/src/test/data/images/jpg/4/info.txt (added) +++ commons/proper/sanselan/trunk/src/test/data/images/jpg/4/info.txt Sat Jul 16 09:11:03 2011 @@ -0,0 +1,7 @@ +Image contributed by Damjan Jovanovic. + +This is a badly corrupted JPEG: 0x00 0x01 ... 0xFF +is written between each segment. A resilient JPEG +parser must skip this data, and scan forward +looking for 0xFF followed by a non-0xFF byte +which marks the next segment.
svn commit: r1354188 [2/2] - in /commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging: ./ common/ formats/tiff/
Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/Imaging.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/Imaging.java?rev=1354188r1=1354187r2=1354188view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/Imaging.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/Imaging.java Tue Jun 26 19:32:21 2012 @@ -40,52 +40,80 @@ import org.apache.commons.imaging.icc.Ic import org.apache.commons.imaging.util.Debug; /** - * The primary interface to the Imaging library. - * p - * Almost all of the Imaging library's core functionality can be accessed - * through it's methods. - * p - * All of Imaging's methods are static. + * The primary application programming interface (API) to the Imaging library. * p + + * h3Application Notes/h3 + * h4Using this class/h4 + * Almost all of the Apache Commons Imaging library's core functionality can + * be accessed through the methods provided by this class. + * The use of the Imaging class is similar to the Java API's ImageIO class, + * though Imaging supports formats and options not included in the standard + * Java API. + * pAll of methods provided by the Imaging class are declared static. + * pThe Apache Commons Imaging package is a pure Java implementation. + * h4Format support/h4 + * While the Apache Commons Imaging package handles a number of different + * graphics formats, support for some formats is not yet complete. + * For the most recent information on support for specific formats, refer to + * a href=http://commons.apache.org/imaging/formatsupport.html;Format Support/a + * at the main project development web site. + * h4Optional parameters for image reading and writing/h4 + * Some of the methods provided by this class accept an optional + * strongparams/strong argument that permits the application to specify + * elements for special handling. If these specifications are not required by + * the application, the params argument may be omitted (as appropriate) or + * a null argument may be provided. In image-writing operations, the option + * parameters may include options such as data-compression type (if any), + * color model, or other format-specific data representations. The parameters + * map may also be used to provide EXIF Tags and other metadata to those + * formats that support them. In image-reading operations, + * the parameters may include information about special handling in reading + * the image data. + * pOptional parameters are specified using a Map object (typically, + * a Java HashMap) to specify a set of keys and values for input. + * The specification for support keys is provided by the ImagingConstants + * interface as well as by format-specific interfaces such as + * JpegContants or TiffConstants. + * h4Example code/h4 * See the source of the SampleUsage class and other classes in the * org.apache.commons.imaging.examples package for examples. * * @see a * href=https://svn.apache.org/repos/asf/commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/examples/SampleUsage.java;org.apache.commons.imaging.examples.SampleUsage/a + * @see a href=http://commons.apache.org/imaging/formatsupport.html;Format Support/a */ public abstract class Imaging implements ImagingConstants { /** - * Tries to guess whether a file contains an image based on its file - * extension. - * p - * Returns true if the file has a file extension associated with a file - * format, such as .jpg or .gif. - * p - * - * @param file - *File which may contain an image. - * @return true if the file has an image format file extension. + * Attempts to determine if a file contains an image recorded in + * a supported graphics format based on its file-name extension + * (for example #46jpg, #46;gif, #46;png, etc#46;). + * + * @param file A valid File object providing a reference to + * a file that may contain an image. + * @return true if the file-name includes a supported image + * format file extension; otherwise, false. */ public static boolean hasImageFileExtension(File file) { -if (!file.isFile()) +if (file==null || !file.isFile()) return false; return hasImageFileExtension(file.getName()); } /** - * Tries to guess whether a filename represents an image based on its file - * extension. - * p - * Returns true if the filename has a file extension associated with a file - * format, such as .jpg or .gif. - * p + * Attempts to determine if a file contains an image recorded in + * a supported graphics format based on its file-name extension + * (for example #46jpg, #46;gif, #46;png, etc#46;). * -
svn commit: r1354188 [1/2] - in /commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging: ./ common/ formats/tiff/
Author: damjan Date: Tue Jun 26 19:32:21 2012 New Revision: 1354188 URL: http://svn.apache.org/viewvc?rev=1354188view=rev Log: Add more Javadoc to main package. Submitted by: Gary Lucas gwlucas at sonalysts dot com Jira issue key: IMAGING-81 Added: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/common/package.html (with props) commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/package.html (with props) commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/package.html (with props) Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ColorTools.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/FormatCompliance.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImageDump.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImageFormat.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImageParser.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImageReadException.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImageWriteException.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/Imaging.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImagingConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImagingException.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/PixelDensity.java Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ColorTools.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ColorTools.java?rev=1354188r1=1354187r2=1354188view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ColorTools.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ColorTools.java Tue Jun 26 19:32:21 2012 @@ -31,7 +31,12 @@ import java.io.File; import java.io.IOException; /** - * This class is a mess and needs to be cleaned up. + * A selection of tools for evaluating and manipulating color + * spaces, color values, etc. + * pThe Javadoc provided in the original code gave the + * following notation:brbr + * + * nbsp;nbsp;nbsp; This class is a mess and needs to be cleaned up. */ public class ColorTools { Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/FormatCompliance.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/FormatCompliance.java?rev=1354188r1=1354187r2=1354188view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/FormatCompliance.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/FormatCompliance.java Tue Jun 26 19:32:21 2012 @@ -23,6 +23,10 @@ import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; +/** + * Provides information about the compliance of a specified data + * source (byte array, file, etc#46;) to an image format. + */ public class FormatCompliance { private final boolean failOnError; private final String description; Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImageDump.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImageDump.java?rev=1354188r1=1354187r2=1354188view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImageDump.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImageDump.java Tue Jun 26 19:32:21 2012 @@ -24,6 +24,10 @@ import java.awt.image.BufferedImage; import org.apache.commons.imaging.icc.IccProfileInfo; import org.apache.commons.imaging.icc.IccProfileParser; +/** + * Used to store metadata and descriptive information extracted from + * image files. + */ public class ImageDump { private String colorSpaceTypeToName(ColorSpace cs) { // System.out.println(prefix + : + type: Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImageFormat.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImageFormat.java?rev=1354188r1=1354187r2=1354188view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImageFormat.java (original) +++ commons/proper/imaging/trunk/src/main/java/org
svn commit: r1354191 - /commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/Imaging.java
Author: damjan Date: Tue Jun 26 19:40:55 2012 New Revision: 1354191 URL: http://svn.apache.org/viewvc?rev=1354191view=rev Log: Fix some Javadoc errors. Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/Imaging.java Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/Imaging.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/Imaging.java?rev=1354191r1=1354190r2=1354191view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/Imaging.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/Imaging.java Tue Jun 26 19:40:55 2012 @@ -811,7 +811,7 @@ public abstract class Imaging implements } /** - * Determines the width and height of an image. + * Extracts the embedded XML metadata as an XML string. * p * * @param is @@ -826,7 +826,7 @@ public abstract class Imaging implements } /** - * Determines the width and height of an image. + * Extracts the embedded XML metadata as an XML string. * p * * @param is @@ -843,7 +843,7 @@ public abstract class Imaging implements } /** - * Determines the width and height of an image. + * Extracts the embedded XML metadata as an XML string. * p * * @param bytes @@ -856,7 +856,7 @@ public abstract class Imaging implements } /** - * Determines the width and height of an image. + * Extracts the embedded XML metadata as an XML string. * p * * @param bytes @@ -871,7 +871,7 @@ public abstract class Imaging implements } /** - * Extracts embedded XML metadata as XML string. + * Extracts the embedded XML metadata as an XML string. * p * * @param file @@ -884,7 +884,7 @@ public abstract class Imaging implements } /** - * Extracts embedded XML metadata as XML string. + * Extracts the embedded XML metadata as an XML string. * p * * @param file @@ -899,7 +899,7 @@ public abstract class Imaging implements } /** - * Extracts embedded XML metadata as XML string. + * Extracts the embedded XML metadata as an XML string. * p * * @param byteSource @@ -1295,8 +1295,6 @@ public abstract class Imaging implements * while reading an image (i.e. a format violation, etc.). * @throws IOException in the event of an unrecoverable I/O exception. */ - - public static BufferedImage getBufferedImage(byte bytes[], Map params) throws ImageReadException, IOException { return getBufferedImage(new ByteSourceArray(bytes), params); @@ -1361,31 +1359,6 @@ public abstract class Imaging implements return imageParser.getBufferedImage(byteSource, params); } -/** - * Writes a BufferedImage to a file. - * p - * (TODO: elaborate here.) - * p - * Sanselan can only read image info, metadata and ICC profiles from all - * image formats. However, note that the library cannot currently read or - * write JPEG image data. PSD (Photoshop) files can only be partially read - * and cannot be written. All other formats (PNG, GIF, TIFF, BMP, etc.) are - * fully supported. - * p - * - * @param src - *The BufferedImage to be written. - * @param file - *File to write to. - * @param format - *The ImageFormat to use. - * @param params - *Map of optional parameters, defined in ImagingConstants. - * @see ImagingConstants - */ - - - /** * Writes the content of a BufferedImage to a file using the specified * image format. Specifications for storing the file (such as data compression,
svn commit: r1355634 - /commons/proper/imaging/trunk/pom.xml
Author: damjan Date: Sat Jun 30 04:56:59 2012 New Revision: 1355634 URL: http://svn.apache.org/viewvc?rev=1355634view=rev Log: Fix some formatting in the POM. Modified: commons/proper/imaging/trunk/pom.xml Modified: commons/proper/imaging/trunk/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/pom.xml?rev=1355634r1=1355633r2=1355634view=diff == --- commons/proper/imaging/trunk/pom.xml (original) +++ commons/proper/imaging/trunk/pom.xml Sat Jun 30 04:56:59 2012 @@ -129,57 +129,49 @@ pluginManagement plugins - !--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-- - plugin - groupIdorg.eclipse.m2e/groupId - artifactIdlifecycle-mapping/artifactId - version1.0.0/version - configuration - lifecycleMappingMetadata - pluginExecutions - pluginExecution - pluginExecutionFilter - groupId - org.apache.maven.plugins - /groupId - artifactId - maven-antrun-plugin - /artifactId - versionRange[1.6,)/versionRange - goals - goalrun/goal - /goals - /pluginExecutionFilter - action - execute - runOnIncrementalfalse/runOnIncremental -/execute - /action - /pluginExecution - pluginExecution - pluginExecutionFilter - groupIdorg.apache.felix/groupId - artifactId - maven-bundle-plugin - /artifactId - versionRange - [2.3.5,) - /versionRange - goals - goalmanifest/goal - /goals - /pluginExecutionFilter - action - execute - runOnIncrementalfalse/runOnIncremental - /execute - /action - /pluginExecution - /pluginExecutions - /lifecycleMappingMetadata - /configuration - /plugin - /plugins +!-- This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-- +plugin + groupIdorg.eclipse.m2e/groupId + artifactIdlifecycle-mapping/artifactId + version1.0.0/version + configuration +lifecycleMappingMetadata + pluginExecutions +pluginExecution + pluginExecutionFilter +groupIdorg.apache.maven.plugins/groupId +artifactIdmaven-antrun-plugin/artifactId +versionRange[1.6,)/versionRange +goals + goalrun/goal +/goals + /pluginExecutionFilter + action
svn commit: r1355640 - in /commons/proper/imaging/trunk: RELEASE-NOTES.txt RELEASE_NOTES pom.xml
Author: damjan Date: Sat Jun 30 05:55:46 2012 New Revision: 1355640 URL: http://svn.apache.org/viewvc?rev=1355640view=rev Log: Rename RELEASE_NOTES to the more common RELEASE-NOTES.txt form. Use a specific maven-assembly-plugin version which allows mvn -Prc install to work. Added: commons/proper/imaging/trunk/RELEASE-NOTES.txt - copied unchanged from r1355634, commons/proper/imaging/trunk/RELEASE_NOTES Removed: commons/proper/imaging/trunk/RELEASE_NOTES Modified: commons/proper/imaging/trunk/pom.xml Modified: commons/proper/imaging/trunk/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/pom.xml?rev=1355640r1=1355639r2=1355640view=diff == --- commons/proper/imaging/trunk/pom.xml (original) +++ commons/proper/imaging/trunk/pom.xml Sat Jun 30 05:55:46 2012 @@ -128,7 +128,12 @@ /plugins pluginManagement - plugins + plugins +!-- Temporary workaround for MASSEMBLY-553 until commons-parent 26 is released-- +plugin + artifactIdmaven-assembly-plugin/artifactId + version2.2-beta-5/version +/plugin !-- This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-- plugin groupIdorg.eclipse.m2e/groupId
svn commit: r1356829 - /commons/proper/imaging/trunk/pom.xml
Author: damjan Date: Tue Jul 3 16:54:39 2012 New Revision: 1356829 URL: http://svn.apache.org/viewvc?rev=1356829view=rev Log: Remove redundant settings which are in the parent POM. Modified: commons/proper/imaging/trunk/pom.xml Modified: commons/proper/imaging/trunk/pom.xml URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/pom.xml?rev=1356829r1=1356828r2=1356829view=diff == --- commons/proper/imaging/trunk/pom.xml (original) +++ commons/proper/imaging/trunk/pom.xml Tue Jul 3 16:54:39 2012 @@ -217,8 +217,6 @@ version${commons.changes.version}/version configuration issueLinkTemplate%URL%/%ISSUE%/issueLinkTemplate - templaterelease-notes.vm/template - templateDirectorysrc/changes/templateDirectory /configuration reportSets reportSet
svn commit: r1357065 [2/2] - in /commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff: ./ constants/
Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/MicrosoftHdPhotoTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/MicrosoftHdPhotoTagConstants.java?rev=1357065r1=1357064r2=1357065view=diff == --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/MicrosoftHdPhotoTagConstants.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/MicrosoftHdPhotoTagConstants.java Wed Jul 4 04:21:03 2012 @@ -37,7 +37,7 @@ public interface MicrosoftHdPhotoTagCons * Data4 (char[8]) is endian-independent. */ public static final TagInfoByte EXIF_TAG_PIXEL_FORMAT = new TagInfoByte( -Pixel Format, 0xbc01, 16, +PixelFormat, 0xbc01, 16, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final BinaryConstant PIXEL_FORMAT_VALUE_BLACK_AND_WHITE = TagConstantsUtils.createMicrosoftHdPhotoGuidEndingWith((byte)0x05); @@ -168,45 +168,46 @@ public interface MicrosoftHdPhotoTagCons public static final int UNCOMPRESSED_VALUE_NO = 0; public static final int UNCOMPRESSED_VALUE_YES = 1; -public static final TagInfoLong EXIF_TAG_IMAGE_TYPE = new TagInfoLong(Image Type, -0xbc04, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); +public static final TagInfoLong EXIF_TAG_IMAGE_TYPE = new TagInfoLong( +ImageType, 0xbc04, 1, +TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final TagInfoLong EXIF_TAG_IMAGE_WIDTH = new TagInfoLong( -Image Width, 0xbc80, 1, +ImageWidth, 0xbc80, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final TagInfoLong EXIF_TAG_IMAGE_HEIGHT = new TagInfoLong( -Image Height, 0xbc81, 1, +ImageHeight, 0xbc81, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final TagInfoFloat EXIF_TAG_WIDTH_RESOLUTION = new TagInfoFloat( -Width Resolution, 0xbc82, 1, +WidthResolution, 0xbc82, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final TagInfoFloat EXIF_TAG_HEIGHT_RESOLUTION = new TagInfoFloat( -Height Resolution, 0xbc83, 1, +HeightResolution, 0xbc83, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); // FIXME: might be an offset? public static final TagInfoLong EXIF_TAG_IMAGE_OFFSET = new TagInfoLong( -Image Offset, 0xbcc0, 1, +ImageOffset, 0xbcc0, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final TagInfoLong EXIF_TAG_IMAGE_BYTE_COUNT = new TagInfoLong( -Image Byte Count, 0xbcc1, 1, +ImageByteCount, 0xbcc1, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); // FIXME: might be an offset? public static final TagInfoLong EXIF_TAG_ALPHA_OFFSET = new TagInfoLong( -Alpha Offset, 0xbcc2, 1, +AlphaOffset, 0xbcc2, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final TagInfoLong EXIF_TAG_ALPHA_BYTE_COUNT = new TagInfoLong( -Alpha Byte Count, 0xbcc3, 1, +AlphaByteCount, 0xbcc3, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final TagInfoByte EXIF_TAG_IMAGE_DATA_DISCARD = new TagInfoByte( -Image Data Discard, 0xbcc4, 1, +ImageDataDiscard, 0xbcc4, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final int IMAGE_DATA_DISCARD_VALUE_FULL_RESOLUTION = 0; public static final int IMAGE_DATA_DISCARD_VALUE_FLEXBITS_DISCARDED = 1; @@ -214,7 +215,7 @@ public interface MicrosoftHdPhotoTagCons public static final int IMAGE_DATA_DISCARD_VALUE_HIGHPASS_AND_LOW_PASS_FREQUENCY_DATA_DISCARDED = 3; public static final TagInfoByte EXIF_TAG_ALPHA_DATA_DISCARD = new TagInfoByte( -Alpha Data Discard, 0xbcc5, 1, +AlphaDataDiscard, 0xbcc5, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); public static final int ALPHA_DATA_DISCARD_VALUE_FULL_RESOLUTION = 0; public static final int ALPHA_DATA_DISCARD_VALUE_FLEXBITS_DISCARDED = 1; Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/MicrosoftTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/MicrosoftTagConstants.java?rev=1357065r1=1357064r2=1357065view=diff == ---