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]

Reply via email to