test: add CCITT Group 3 (Fax3) test images with libtiff cross-validation

Three 16x16 bilevel fax3 test images covering the key Group 3 variants:
- seq-1c-1b-fax3: basic G3, no fill bits, MSB-first fill order
- seq-1c-1b-fax3-fillbits: G3 with T4Options fill bits (byte-aligned EOLs)
- seq-1c-1b-fax3-lsb: G3 with FillOrder=2 (LSB-first)

All use MinIsWhite photometric with inverted sequential pattern, producing
the same decoded CRC32 hash (71f6a21a) as the uncompressed 1-bit images.
Cross-validated: libtiff writes the images, both libtiff and image-tiff
read them back and agree on the decoded data.
This commit is contained in:
Lilith River committed 2026-03-12 00:52:03 -06:00
1 parent ba7a290ff7
commit 6c8f8abc71
5 files changed
+75

No files matched your search

+9
View File
@@ -436,6 +436,15 @@ int main(int argc, char **argv)
/* --- Tiled BigTIFF --- */
{"seq-1c-8b-tiled-bigtiff.tiff", SUM_U8, 8, 1, {.u = 32640}},
/* --- CCITT Group 3 (Fax3) ---
* libtiff returns raw scanline data in MinIsWhite convention (0=white, 1=black).
* The stored pattern is inverted sequential, so libtiff sum differs from
* image-tiff's BlackIsZero sum. For 16x16 1-bit with inverted sequential pattern,
* the raw packed byte sum is computed by verify run below. */
{"seq-1c-1b-fax3.tiff", SUM_U8_PACKED, 1, 1, {.u = 5440}},
{"seq-1c-1b-fax3-fillbits.tiff", SUM_U8_PACKED, 1, 1, {.u = 5440}},
{"seq-1c-1b-fax3-lsb.tiff", SUM_U8_PACKED, 1, 1, {.u = 5440}},
};
int ncases = sizeof(cases) / sizeof(cases[0]);