Image Masks of type XObject and Subtype Image do not render
When rendering a PDF whose dictionary includes an image mask and the dictionary for that said image mask is the following:
[BitsPerComponent] 8
[ColorSpace] (DeviceGray)
[Filter] (FlateDecode)
[Height] 75
[Subtype] (Image)
[Type] (XObject)
[Width] 216
[Length] 3348
As currently written the code in Gfx::doImage
contained in poppler/Gfx.cc
will fall through to be handled as an 'explicit mask', this code then produces an error and does not render the image because, as you can see above, there is no entry in the dictionary or ImageMask
or IM
of type boolean
.
It turns out that if you adjust the code and handle this instance the same as a 'soft mask', the image draws correctly with proper transparency and the output is as expected. If you adjust the code so that the image outputs as an 'explicit mask', so just skip the mising boolean error, the image is drawn but it is not correct as the transparency is ignored.
I will attach a merge request with code that will draw this image but I do understand that I am not entirely familiar with the whole poppler ecosystem so if you want to fix it through a different methodology, it's all good.