You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2015/03/23 21:55:40 UTC

svn commit: r1668730 - /pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/filter/JBIG2Filter.java

Author: tilman
Date: Mon Mar 23 20:55:40 2015
New Revision: 1668730

URL: http://svn.apache.org/r1668730
Log:
PDFBOX-2726: use correct strategy to get decode_parms

Modified:
    pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/filter/JBIG2Filter.java

Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/filter/JBIG2Filter.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/filter/JBIG2Filter.java?rev=1668730&r1=1668729&r2=1668730&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/filter/JBIG2Filter.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/filter/JBIG2Filter.java Mon Mar 23 20:55:40 2015
@@ -32,6 +32,8 @@ import javax.imageio.stream.ImageInputSt
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.pdfbox.cos.COSArray;
+import org.apache.pdfbox.cos.COSBase;
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSInteger;
 import org.apache.pdfbox.cos.COSName;
@@ -70,12 +72,21 @@ public class JBIG2Filter implements Filt
             return;
         }
         ImageReader reader = readers.next();
-        COSDictionary decodeP = (COSDictionary) options.getDictionaryObject(COSName.DECODE_PARMS);
+        COSBase decodeP = options.getDictionaryObject(COSName.DECODE_PARMS, COSName.DP);
+        COSDictionary decodeParms = null;
+        if (decodeP instanceof COSDictionary)
+        {
+            decodeParms = (COSDictionary) decodeP;
+        }
+        else if (decodeP instanceof COSArray)
+        {
+            decodeParms = (COSDictionary) ((COSArray) decodeP).getObject(filterIndex);
+        }
         COSInteger bits = (COSInteger) options.getDictionaryObject(COSName.BITS_PER_COMPONENT);
         COSStream st = null;
-        if (decodeP != null)
+        if (decodeParms != null)
         {
-            st = (COSStream) decodeP.getDictionaryObject(COSName.JBIG2_GLOBALS);
+            st = (COSStream) decodeParms.getDictionaryObject(COSName.JBIG2_GLOBALS);
         }
         if (st != null)
         {