You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by da...@apache.org on 2012/03/31 11:31:37 UTC
svn commit: r1307748 - in
/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff:
constants/ taginfos/ write/
Author: damjan
Date: Sat Mar 31 09:31:37 2012
New Revision: 1307748
URL: http://svn.apache.org/viewvc?rev=1307748&view=rev
Log:
Add some new TagInfo types.
Added:
commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAsciiOrByte.java (with props)
Modified:
commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DngTagConstants.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/TiffFieldTypeConstants.java
commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAsciiOrRational.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/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=1307748&r1=1307747&r2=1307748&view=diff
==============================================================================
--- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DngTagConstants.java (original)
+++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/DngTagConstants.java Sat Mar 31 09:31:37 2012
@@ -6,6 +6,7 @@ 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.TagInfoAsciiOrByte;
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;
@@ -36,8 +37,7 @@ public interface DngTagConstants extends
"Unique Camera Model", 0xc614, -1,
TiffDirectoryType.EXIF_DIRECTORY_IFD0);
- // FIXME: byte or ascii
- public static final TagInfoAscii EXIF_TAG_LOCALIZED_CAMERA_MODEL = new TagInfoAscii(
+ public static final TagInfoAsciiOrByte EXIF_TAG_LOCALIZED_CAMERA_MODEL = new TagInfoAsciiOrByte(
"Localized Camera Model", 0xc615, -1,
TiffDirectoryType.EXIF_DIRECTORY_IFD0);
@@ -236,8 +236,7 @@ public interface DngTagConstants extends
"Raw Data Unique ID", 0xc65d, 16,
TiffDirectoryType.EXIF_DIRECTORY_IFD0);
- // FIXME: byte or ascii
- public static final TagInfoAscii EXIF_TAG_ORIGINAL_RAW_FILE_NAME = new TagInfoAscii(
+ public static final TagInfoAsciiOrByte EXIF_TAG_ORIGINAL_RAW_FILE_NAME = new TagInfoAsciiOrByte(
"Original Raw File Name", 0xc68b, -1,
TiffDirectoryType.EXIF_DIRECTORY_IFD0);
@@ -275,13 +274,11 @@ public interface DngTagConstants extends
public static final short COLORIMETRIC_REFERENCE_VALUE_SCENE_REFERRED = 0;
public static final short COLORIMETRIC_REFERENCE_VALUE_OUTPUT_REFERRED = 1;
- // FIXME: ascii or byte
- public static final TagInfoAscii EXIF_TAG_CAMERA_CALIBRATION_SIGNATURE = new TagInfoAscii(
+ public static final TagInfoAsciiOrByte EXIF_TAG_CAMERA_CALIBRATION_SIGNATURE = new TagInfoAsciiOrByte(
"Camera Calibration Signature", 0xc6f3, -1,
TiffDirectoryType.EXIF_DIRECTORY_IFD0);
- // FIXME: ascii or byte
- public static final TagInfoAscii EXIF_TAG_PROFILE_CALIBRATION_SIGNATURE = new TagInfoAscii(
+ public static final TagInfoAsciiOrByte EXIF_TAG_PROFILE_CALIBRATION_SIGNATURE = new TagInfoAsciiOrByte(
"Profile Calibration Signature", 0xc6f4, -1,
TiffDirectoryType.EXIF_DIRECTORY_IFD0);
@@ -289,8 +286,7 @@ public interface DngTagConstants extends
"Extra Camera Profiles", 0xc6f5, -1,
TiffDirectoryType.EXIF_DIRECTORY_IFD0);
- // FIXME: ascii or byte
- public static final TagInfoAscii EXIF_TAG_AS_SHOT_PROFILE_NAME = new TagInfoAscii(
+ public static final TagInfoAsciiOrByte EXIF_TAG_AS_SHOT_PROFILE_NAME = new TagInfoAsciiOrByte(
"As Shot Profile Name", 0xc6f6, -1,
TiffDirectoryType.EXIF_DIRECTORY_IFD0);
@@ -326,8 +322,7 @@ public interface DngTagConstants extends
public static final int PROFILE_EMBED_POLICY_VALUE_EMBED_NEVER = 2;
public static final int PROFILE_EMBED_POLICY_VALUE_NO_RESTRICTIONS = 3;
- // FIXME: ascii or byte
- public static final TagInfoAscii EXIF_TAG_PROFILE_COPYRIGHT = new TagInfoAscii(
+ public static final TagInfoAsciiOrByte EXIF_TAG_PROFILE_COPYRIGHT = new TagInfoAsciiOrByte(
"Profile Copyright", 0xc6fe, -1,
TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
@@ -339,18 +334,15 @@ public interface DngTagConstants extends
"Forward Matrix 2", 0xc715, -1,
TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
- // FIXME: ascii or byte
- public static final TagInfoAscii EXIF_TAG_PREVIEW_APPLICATION_NAME = new TagInfoAscii(
+ public static final TagInfoAsciiOrByte EXIF_TAG_PREVIEW_APPLICATION_NAME = new TagInfoAsciiOrByte(
"Preview Application Name", 0xc716, -1,
TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
- // FIXME: ascii or byte
- public static final TagInfoAscii EXIF_TAG_PREVIEW_APPLICATION_VERSION = new TagInfoAscii(
+ public static final TagInfoAsciiOrByte EXIF_TAG_PREVIEW_APPLICATION_VERSION = new TagInfoAsciiOrByte(
"Preview Application Version", 0xc717, -1,
TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
- // FIXME: ascii or byte
- public static final TagInfoAscii EXIF_TAG_PREVIEW_SETTINGS_NAME = new TagInfoAscii(
+ public static final TagInfoAsciiOrByte EXIF_TAG_PREVIEW_SETTINGS_NAME = new TagInfoAsciiOrByte(
"Preview Settings Name", 0xc718, -1,
TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
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=1307748&r1=1307747&r2=1307748&view=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 31 09:31:37 2012
@@ -21,25 +21,18 @@ 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.TagInfoAny;
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.TagInfoByteOrShort;
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.TagInfoSLong;
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.TagInfoShortOrLong;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShortOrLongOrRational;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShortOrRational;
import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoUndefined;
import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoUnknown;
-import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoXpString;
/**
* References:
Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffFieldTypeConstants.java
URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffFieldTypeConstants.java?rev=1307748&r1=1307747&r2=1307748&view=diff
==============================================================================
--- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffFieldTypeConstants.java (original)
+++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/TiffFieldTypeConstants.java Sat Mar 31 09:31:37 2012
@@ -100,4 +100,8 @@ public interface TiffFieldTypeConstants
public static final List<FieldType> FIELD_TYPE_DESCRIPTION_ASCII_OR_RATIONAL =
Collections.unmodifiableList(Arrays.asList(
FIELD_TYPE_ASCII, FIELD_TYPE_RATIONAL));
+
+ public static final List<FieldType> FIELD_TYPE_DESCRIPTION_ASCII_OR_BYTE =
+ Collections.unmodifiableList(Arrays.asList(
+ FIELD_TYPE_ASCII, FIELD_TYPE_BYTE));
}
\ No newline at end of file
Added: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAsciiOrByte.java
URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAsciiOrByte.java?rev=1307748&view=auto
==============================================================================
--- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAsciiOrByte.java (added)
+++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAsciiOrByte.java Sat Mar 31 09:31:37 2012
@@ -0,0 +1,9 @@
+package org.apache.commons.sanselan.formats.tiff.taginfos;
+
+import org.apache.commons.sanselan.formats.tiff.constants.TiffDirectoryType;
+
+public class TagInfoAsciiOrByte extends TagInfo {
+ public TagInfoAsciiOrByte(String name, int tag, int length, TiffDirectoryType directoryType) {
+ super(name, tag, FIELD_TYPE_DESCRIPTION_ASCII_OR_BYTE, length, directoryType, false);
+ }
+}
Propchange: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAsciiOrByte.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAsciiOrRational.java
URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAsciiOrRational.java?rev=1307748&r1=1307747&r2=1307748&view=diff
==============================================================================
--- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAsciiOrRational.java (original)
+++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/taginfos/TagInfoAsciiOrRational.java Sat Mar 31 09:31:37 2012
@@ -4,6 +4,6 @@ import org.apache.commons.sanselan.forma
public class TagInfoAsciiOrRational extends TagInfo {
public TagInfoAsciiOrRational(String name, int tag, int length, TiffDirectoryType directoryType) {
- super(name, tag, FIELD_TYPE_DESCRIPTION_SHORT_OR_RATIONAL, length, directoryType, false);
+ super(name, tag, FIELD_TYPE_DESCRIPTION_ASCII_OR_RATIONAL, length, directoryType, false);
}
}
Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputDirectory.java
URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputDirectory.java?rev=1307748&r1=1307747&r2=1307748&view=diff
==============================================================================
--- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputDirectory.java (original)
+++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffOutputDirectory.java Sat Mar 31 09:31:37 2012
@@ -37,6 +37,8 @@ import org.apache.commons.sanselan.forma
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.TagInfoAsciiOrByte;
+import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAsciiOrRational;
import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByte;
import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoByteOrShort;
import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoDouble;
@@ -98,8 +100,8 @@ public final class TiffOutputDirectory e
public void add(TagInfoAscii tagInfo, String... values) throws ImageWriteException {
byte[] bytes = tagInfo.encodeValue(byteOrder, values);
if (tagInfo.length > 0 && tagInfo.length != bytes.length) {
- //throw new ImageWriteException("Tag expects " + tagInfo.length +
- // " byte(s), not " + values.length);
+ throw new ImageWriteException("Tag expects " + tagInfo.length +
+ " byte(s), not " + values.length);
}
TiffOutputField tiffOutputField = new TiffOutputField(tagInfo.tag, tagInfo,
TiffFieldTypeConstants.FIELD_TYPE_ASCII, bytes.length, bytes);
@@ -318,6 +320,39 @@ public final class TiffOutputDirectory e
add(tiffOutputField);
}
+ public void add(TagInfoAsciiOrByte tagInfo, String... values) throws ImageWriteException {
+ byte[] bytes = tagInfo.encodeValue(TiffFieldTypeConstants.FIELD_TYPE_ASCII, values, byteOrder);
+ if (tagInfo.length > 0 && tagInfo.length != bytes.length) {
+ throw new ImageWriteException("Tag expects " + tagInfo.length +
+ " byte(s), not " + values.length);
+ }
+ TiffOutputField tiffOutputField = new TiffOutputField(tagInfo.tag, tagInfo,
+ TiffFieldTypeConstants.FIELD_TYPE_ASCII, bytes.length, bytes);
+ add(tiffOutputField);
+ }
+
+ public void add(TagInfoAsciiOrRational tagInfo, String... values) throws ImageWriteException {
+ byte[] bytes = tagInfo.encodeValue(TiffFieldTypeConstants.FIELD_TYPE_ASCII, values, byteOrder);
+ if (tagInfo.length > 0 && tagInfo.length != bytes.length) {
+ throw new ImageWriteException("Tag expects " + tagInfo.length +
+ " byte(s), not " + values.length);
+ }
+ TiffOutputField tiffOutputField = new TiffOutputField(tagInfo.tag, tagInfo,
+ TiffFieldTypeConstants.FIELD_TYPE_ASCII, bytes.length, bytes);
+ add(tiffOutputField);
+ }
+
+ public void add(TagInfoAsciiOrRational tagInfo, RationalNumber... values) throws ImageWriteException {
+ if (tagInfo.length > 0 && tagInfo.length != values.length) {
+ throw new ImageWriteException("Tag expects " + tagInfo.length +
+ " value(s), not " + values.length);
+ }
+ byte[] bytes = tagInfo.encodeValue(TiffFieldTypeConstants.FIELD_TYPE_RATIONAL, values, byteOrder);
+ TiffOutputField tiffOutputField = new TiffOutputField(tagInfo.tag, tagInfo,
+ TiffFieldTypeConstants.FIELD_TYPE_RATIONAL, bytes.length, bytes);
+ add(tiffOutputField);
+ }
+
public void add(TiffOutputField field)
{
fields.add(field);