1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 11:54:57 +00:00

LibPDF: In Filter::decode_jbig2(), invert bits

See included comment.
This commit is contained in:
Nico Weber 2024-03-08 21:17:20 -05:00 committed by Tim Flynn
parent 54dcb17062
commit be9a6caa0a

View file

@ -346,7 +346,14 @@ PDFErrorOr<ByteBuffer> Filter::decode_jbig2(Document* document, ReadonlyBytes by
} }
segments.append(bytes); segments.append(bytes);
return TRY(Gfx::JBIG2ImageDecoderPlugin::decode_embedded(segments)); auto decoded = TRY(Gfx::JBIG2ImageDecoderPlugin::decode_embedded(segments));
// JBIG2 treats `1` as "ink present" (black) and `0` as "no ink" (white).
// PDF treats `1` as "light present" (white) and `1` as "no light" (black).
// So we have to invert.
invert_bits(decoded);
return decoded;
} }
PDFErrorOr<ByteBuffer> Filter::decode_dct(ReadonlyBytes bytes) PDFErrorOr<ByteBuffer> Filter::decode_dct(ReadonlyBytes bytes)