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 2020/03/20 10:47:36 UTC

svn commit: r1875464 - /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java

Author: tilman
Date: Fri Mar 20 10:47:35 2020
New Revision: 1875464

URL: http://svn.apache.org/viewvc?rev=1875464&view=rev
Log:
PDFBOX-4801: correct numberOfComponents if /N is incorrect

Modified:
    pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java?rev=1875464&r1=1875463&r2=1875464&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java Fri Mar 20 10:47:35 2020
@@ -385,6 +385,18 @@ public final class PDICCBased extends PD
         if (numberOfComponents < 0)
         {
             numberOfComponents = stream.getCOSObject().getInt(COSName.N);
+
+            // PDFBOX-4801 correct wrong /N values
+            if (iccProfile != null)
+            {
+                int numIccComponents = iccProfile.getNumComponents();
+                if (numIccComponents != numberOfComponents)
+                {
+                    LOG.warn("Using " + numIccComponents + " components from ICC profile info instead of " +
+                            numberOfComponents + " components from /N entry");
+                    numberOfComponents = numIccComponents;
+                }
+            }
         }
         return numberOfComponents;
     }