poppler/Gfx.cc |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

New commits:
commit 4601e1d533a9c47e304b75435a104f5096a2b9a4
Author: Philipp Knechtges <philipp-...@knechtges.com>
Date:   Tue Dec 8 23:06:43 2020 +0100

    Gfx: specifically use DeviceGray instead of DefaultGray for softmasks

diff --git a/poppler/Gfx.cc b/poppler/Gfx.cc
index b8bf47ab..746703ab 100644
--- a/poppler/Gfx.cc
+++ b/poppler/Gfx.cc
@@ -4392,11 +4392,12 @@ void Gfx::doImage(Object *ref, Stream *str, bool 
inlineImg)
                     obj1 = std::move(obj2);
                 }
             }
-            maskColorSpace = GfxColorSpace::parse(nullptr, &obj1, out, state);
-            if (!maskColorSpace || maskColorSpace->getMode() != csDeviceGray) {
-                delete maskColorSpace;
+            // Here, we parse manually instead of using GfxColorSpace::parse,
+            // since we explicitly need DeviceGray and not some DefaultGray 
color space
+            if (!obj1.isName("DeviceGray") && !obj1.isName("G")) {
                 goto err1;
             }
+            maskColorSpace = new GfxDeviceGrayColorSpace();
             obj1 = maskDict->lookup("Decode");
             if (obj1.isNull()) {
                 obj1 = maskDict->lookup("D");
_______________________________________________
poppler mailing list
poppler@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/poppler

Reply via email to