Author: lbernardo
Date: Sun Nov 25 23:24:41 2012
New Revision: 1413442
URL: http://svn.apache.org/viewvc?rev=1413442&view=rev
Log:
bugzilla #54196: configure big / little endian support for TIFF images; patch
29628 applied; submitted by Robert Meyer
Modified:
xmlgraphics/fop/trunk/lib/xmlgraphics-commons-svn-trunk.jar
xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/output.xml
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFDocumentHandler.java
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfig.java
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfigurator.java
xmlgraphics/fop/trunk/test/java/org/apache/fop/apps/TIFFRendererConfBuilder.java
xmlgraphics/fop/trunk/test/java/org/apache/fop/render/bitmap/TIFFRendererConfigParserTestCase.java
xmlgraphics/fop/trunk/test/java/org/apache/fop/render/bitmap/TIFFRendererConfiguratorTestCase.java
Modified: xmlgraphics/fop/trunk/lib/xmlgraphics-commons-svn-trunk.jar
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/lib/xmlgraphics-commons-svn-trunk.jar?rev=1413442&r1=1413441&r2=1413442&view=diff
==============================================================================
Binary files - no diff available.
Modified: xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/output.xml
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/output.xml?rev=1413442&r1=1413441&r2=1413442&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/output.xml
(original)
+++ xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/output.xml Sun
Nov 25 23:24:41 2012
@@ -1271,6 +1271,7 @@ Note that the value of the encoding attr
<transparent-page-background>true</transparent-page-background>
<compression>CCITT T.6</compression>
<single-strip>true</single-strip>
+ <endianness>default</endianness>
<fonts><!-- described elsewhere --></fonts>
</renderer>]]></source>
<p>
@@ -1308,6 +1309,11 @@ Note that the value of the encoding attr
The default value for the <code>"single-strip"</code> is
<code>"false"</code> resulting in the RowsPerStrip Tiff Tag equal to the number
of rows.
If set to <code>true</code> RowsPerStrip is set to 1.
</p>
+ <p>
+ The default value for <code>"endianness"</code> is
<code>"default"</code>, which results in the
+ default endianness for the output format being generated. Note that
not all image formats allow
+ specifying the endianness.
+ </p>
</section>
<section id="bitmap-rendering-options">
<title>Runtime Rendering Options</title>
Modified:
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFDocumentHandler.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFDocumentHandler.java?rev=1413442&r1=1413441&r2=1413442&view=diff
==============================================================================
---
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFDocumentHandler.java
(original)
+++
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFDocumentHandler.java
Sun Nov 25 23:24:41 2012
@@ -19,8 +19,6 @@
package org.apache.fop.render.bitmap;
-import org.apache.xmlgraphics.image.writer.ResolutionUnit;
-
import org.apache.fop.apps.MimeConstants;
import
org.apache.fop.render.bitmap.TIFFRendererConfig.TIFFRendererConfigParser;
import org.apache.fop.render.intermediate.IFContext;
@@ -34,7 +32,6 @@ public class TIFFDocumentHandler extends
TIFFDocumentHandler(IFContext context) {
super(context);
-
getSettings().getWriterParams().setResolutionUnit(ResolutionUnit.CENTIMETER);
}
/** {@inheritDoc} */
Modified:
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfig.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfig.java?rev=1413442&r1=1413441&r2=1413442&view=diff
==============================================================================
---
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfig.java
(original)
+++
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfig.java
Sun Nov 25 23:24:41 2012
@@ -23,6 +23,8 @@ import java.util.EnumMap;
import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.xmlgraphics.image.writer.Endianness;
+
import org.apache.fop.apps.FOPException;
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.MimeConstants;
@@ -40,7 +42,9 @@ public final class TIFFRendererConfig ex
public enum TIFFRendererOption implements RendererConfigOption {
COMPRESSION("compression", PACKBITS),
/** option to encode one row per strip or a all rows in a single
strip*/
- SINGLE_STRIP("single-strip", Boolean.FALSE);
+ SINGLE_STRIP("single-strip", Boolean.FALSE),
+ /** option to determine whether to use little or big endian encoding */
+ ENDIANNESS("endianness", Endianness.DEFAULT);
private final String name;
private final Object defaultValue;
@@ -79,6 +83,13 @@ public final class TIFFRendererConfig ex
}
/**
+ * @return returns an object to determine whether little or big endian
encoding is used
+ */
+ public Endianness getEndianness() {
+ return (Endianness) params.get(TIFFRendererOption.ENDIANNESS);
+ }
+
+ /**
* The TIFF renderer configuration parser.
*/
public static final class TIFFRendererConfigParser extends
BitmapRendererConfigParser {
@@ -107,6 +118,8 @@ public final class TIFFRendererConfig ex
TIFFCompressionValue.getType(getValue(cfg,
TIFFRendererOption.COMPRESSION)));
setParam(TIFFRendererOption.SINGLE_STRIP,
Boolean.valueOf(getValue(cfg,
TIFFRendererOption.SINGLE_STRIP)));
+ setParam(TIFFRendererOption.ENDIANNESS,
+ Endianness.getEndianType(getValue(cfg,
TIFFRendererOption.ENDIANNESS)));
}
return config;
}
Modified:
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfigurator.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfigurator.java?rev=1413442&r1=1413441&r2=1413442&view=diff
==============================================================================
---
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfigurator.java
(original)
+++
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfigurator.java
Sun Nov 25 23:24:41 2012
@@ -22,6 +22,8 @@ package org.apache.fop.render.bitmap;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.xmlgraphics.image.writer.Endianness;
+
import org.apache.fop.apps.FOPException;
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.render.Renderer;
@@ -81,6 +83,11 @@ public class TIFFRendererConfigurator ex
return singleRowPerStrip == null ? false : singleRowPerStrip;
}
+ private Endianness getEndianness(TIFFRendererConfig config) {
+ Endianness endianMode = config.getEndianness();
+ return endianMode == null ? Endianness.DEFAULT : endianMode;
+ }
+
@Override
public void configure(IFDocumentHandler documentHandler) throws
FOPException {
final TIFFRendererConfig config = (TIFFRendererConfig)
getRendererConfig(documentHandler);
@@ -90,6 +97,7 @@ public class TIFFRendererConfigurator ex
configure(documentHandler, settings, new
TIFFRendererConfigParser());
setCompressionMethod(config.getCompressionType(), settings);
settings.getWriterParams().setSingleStrip(isSingleStrip(config));
+ settings.getWriterParams().setEndianness(getEndianness(config));
}
}
Modified:
xmlgraphics/fop/trunk/test/java/org/apache/fop/apps/TIFFRendererConfBuilder.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/apps/TIFFRendererConfBuilder.java?rev=1413442&r1=1413441&r2=1413442&view=diff
==============================================================================
---
xmlgraphics/fop/trunk/test/java/org/apache/fop/apps/TIFFRendererConfBuilder.java
(original)
+++
xmlgraphics/fop/trunk/test/java/org/apache/fop/apps/TIFFRendererConfBuilder.java
Sun Nov 25 23:24:41 2012
@@ -20,6 +20,7 @@
package org.apache.fop.apps;
import static
org.apache.fop.render.bitmap.TIFFRendererConfig.TIFFRendererOption.COMPRESSION;
+import static
org.apache.fop.render.bitmap.TIFFRendererConfig.TIFFRendererOption.ENDIANNESS;
import static
org.apache.fop.render.bitmap.TIFFRendererConfig.TIFFRendererOption.SINGLE_STRIP;
public class TIFFRendererConfBuilder extends BitmapRendererConfBuilder {
@@ -36,4 +37,9 @@ public class TIFFRendererConfBuilder ext
createTextElement(SINGLE_STRIP, String.valueOf(single));
return this;
}
+
+ public TIFFRendererConfBuilder setEndianness(String endianness) {
+ createTextElement(ENDIANNESS, endianness);
+ return this;
+ }
}
Modified:
xmlgraphics/fop/trunk/test/java/org/apache/fop/render/bitmap/TIFFRendererConfigParserTestCase.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/render/bitmap/TIFFRendererConfigParserTestCase.java?rev=1413442&r1=1413441&r2=1413442&view=diff
==============================================================================
---
xmlgraphics/fop/trunk/test/java/org/apache/fop/render/bitmap/TIFFRendererConfigParserTestCase.java
(original)
+++
xmlgraphics/fop/trunk/test/java/org/apache/fop/render/bitmap/TIFFRendererConfigParserTestCase.java
Sun Nov 25 23:24:41 2012
@@ -21,6 +21,8 @@ package org.apache.fop.render.bitmap;
import org.junit.Test;
+import org.apache.xmlgraphics.image.writer.Endianness;
+
import org.apache.fop.apps.FopConfBuilder;
import org.apache.fop.apps.TIFFRendererConfBuilder;
import
org.apache.fop.render.bitmap.TIFFRendererConfig.TIFFRendererConfigParser;
@@ -62,4 +64,12 @@ extends AbstractBitmapRendererConfigPars
parseConfig(createRenderer().setSingleStrip(false));
assertFalse(getConfig().isSingleStrip());
}
+
+ @Test
+ public void testEndianness() throws Exception {
+ for (Endianness value : Endianness.values()) {
+ parseConfig(createRenderer().setEndianness(value.toString()));
+ assertEquals(value, getConfig().getEndianness());
+ }
+ }
}
Modified:
xmlgraphics/fop/trunk/test/java/org/apache/fop/render/bitmap/TIFFRendererConfiguratorTestCase.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/render/bitmap/TIFFRendererConfiguratorTestCase.java?rev=1413442&r1=1413441&r2=1413442&view=diff
==============================================================================
---
xmlgraphics/fop/trunk/test/java/org/apache/fop/render/bitmap/TIFFRendererConfiguratorTestCase.java
(original)
+++
xmlgraphics/fop/trunk/test/java/org/apache/fop/render/bitmap/TIFFRendererConfiguratorTestCase.java
Sun Nov 25 23:24:41 2012
@@ -23,6 +23,7 @@ import java.awt.image.BufferedImage;
import org.junit.Test;
+import org.apache.xmlgraphics.image.writer.Endianness;
import org.apache.fop.apps.FopConfBuilder;
import org.apache.fop.apps.MimeConstants;
@@ -72,4 +73,12 @@ public class TIFFRendererConfiguratorTes
assertFalse(settings.getWriterParams().isSingleStrip());
}
+ @Test
+ public void testEndianness() throws Exception {
+ for (Endianness value : Endianness.values()) {
+ parseConfig(createBuilder().setEndianness(value.toString()));
+ assertEquals(value, settings.getWriterParams().getEndianness());
+ }
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]