1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 04:47:35 +00:00

LibGfx/TIFF: Add support for Group4Fax encoded images

Note that we don't parse the T6 option group yet.

The test case was generated with GIMP.
This commit is contained in:
Lucas CHOLLET 2024-02-15 19:47:44 -05:00 committed by Jelle Raaijmakers
parent d57d676425
commit 9ec3480207
3 changed files with 26 additions and 0 deletions

View file

@ -436,6 +436,20 @@ private:
TRY(loop_over_pixels(move(decode_group3_segment)));
break;
}
case Compression::Group4Fax: {
TRY(ensure_tags_are_correct_for_ccitt());
// FIXME: We need to parse T6 options
ByteBuffer decoded_bytes {};
auto decode_group3_segment = [&](u32 num_bytes, IntSize segment_size) -> ErrorOr<ReadonlyBytes> {
auto const encoded_bytes = TRY(read_bytes_considering_fill_order(num_bytes));
decoded_bytes = TRY(CCITT::decode_ccitt_group4(encoded_bytes, segment_size.width(), segment_size.height()));
return decoded_bytes;
};
TRY(loop_over_pixels(move(decode_group3_segment)));
break;
}
case Compression::LZW: {
ByteBuffer decoded_bytes {};
auto decode_lzw_segment = [&](u32 num_bytes, IntSize) -> ErrorOr<ReadonlyBytes> {