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 2011/12/09 11:18:21 UTC
svn commit: r1212318 -
/commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/write/TiffOutputField.java
Author: damjan
Date: Fri Dec 9 10:18:21 2011
New Revision: 1212318
URL: http://svn.apache.org/viewvc?rev=1212318&view=rev
Log:
Detect ASCII field types more rigorously,
and write their correct length when writing
TIFF tags.
This is based on bits from SANSELAN-51
and SANSELAN-12, however neither of those
is complete or correct by itself or even
when they're put together.
This resolves SANSELAN-12 and fixes part 1
of SANSELAN-51.
Jira issue keys: SANSELAN-12 , SANSELAN-51
Modified:
commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/write/TiffOutputField.java
Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/write/TiffOutputField.java
URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/write/TiffOutputField.java?rev=1212318&r1=1212317&r2=1212318&view=diff
==============================================================================
--- commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/write/TiffOutputField.java (original)
+++ commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/tiff/write/TiffOutputField.java Fri Dec 9 10:18:21 2011
@@ -97,16 +97,19 @@ public class TiffOutputField implements
String value) throws ImageWriteException
{
FieldType fieldType;
- if (tagInfo.dataTypes == null)
- fieldType = FIELD_TYPE_ASCII;
- else if (tagInfo.dataTypes == FIELD_TYPE_DESCRIPTION_ASCII)
+ if (tagInfo.dataTypes == null || tagInfo.dataTypes.length < 1)
fieldType = FIELD_TYPE_ASCII;
else
- throw new ImageWriteException("Tag has unexpected data type.");
+ {
+ if (tagInfo.dataTypes[0] == FIELD_TYPE_ASCII)
+ fieldType = FIELD_TYPE_ASCII;
+ else
+ throw new ImageWriteException("Tag has unexpected data type.");
+ }
byte bytes[] = fieldType.writeData(value, byteOrder);
- return new TiffOutputField(tagInfo.tag, tagInfo, fieldType, 1, bytes);
+ return new TiffOutputField(tagInfo.tag, tagInfo, fieldType, bytes.length, bytes);
}
protected static final TiffOutputField createOffsetField(TagInfo tagInfo,