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 2019/07/25 16:37:25 UTC

svn commit: r1863747 - /pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/LosslessFactory.java

Author: tilman
Date: Thu Jul 25 16:37:25 2019
New Revision: 1863747

URL: http://svn.apache.org/viewvc?rev=1863747&view=rev
Log:
PDFBOX-4607: set correct /Alternate colorspace for images with gray colorspace, by Emmeran Seehuber

Modified:
    pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/LosslessFactory.java

Modified: pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/LosslessFactory.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/LosslessFactory.java?rev=1863747&r1=1863746&r2=1863747&view=diff
==============================================================================
--- pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/LosslessFactory.java (original)
+++ pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/LosslessFactory.java Thu Jul 25 16:37:25 2019
@@ -561,7 +561,8 @@ public final class LosslessFactory
             int w = image.getWidth();
 
             ColorSpace srcCspace = image.getColorModel().getColorSpace();
-            PDColorSpace pdColorSpace = srcCspace.getType() != ColorSpace.TYPE_CMYK
+            int srcCspaceType = srcCspace.getType();
+			PDColorSpace pdColorSpace = srcCspaceType != ColorSpace.TYPE_CMYK
                                         ? PDDeviceRGB.INSTANCE : PDDeviceCMYK.INSTANCE;
 
             // Encode the image profile if the image has one
@@ -579,9 +580,9 @@ public final class LosslessFactory
                     pdProfile.getPDStream().getCOSObject().setInt(COSName.N,
                             srcCspace.getNumComponents());
                     pdProfile.getPDStream().getCOSObject().setItem(COSName.ALTERNATE,
-                            srcCspace.getType() == ColorSpace.TYPE_CMYK ?
-                                    COSName.DEVICECMYK :
-                                    COSName.DEVICERGB);
+                            srcCspaceType == ColorSpace.TYPE_GRAY ? COSName.DEVICEGRAY
+                                    : (srcCspaceType == ColorSpace.TYPE_CMYK ? COSName.DEVICECMYK
+                                            : COSName.DEVICERGB));
                     pdColorSpace = pdProfile;
                 }
             }