From ca0d28eae56fde0d86bda27e85bc0adfe96929f5 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Wed, 1 May 2019 00:42:30 +1000 Subject: [PATCH] Added reading of CMYK;16L TIFF images --- Tests/images/tiff_strip_cmyk_16l_jpeg.tif | Bin 0 -> 96472 bytes Tests/test_file_libtiff.py | 6 ++++++ src/PIL/TiffImagePlugin.py | 2 ++ src/libImaging/Unpack.c | 1 + 4 files changed, 9 insertions(+) create mode 100644 Tests/images/tiff_strip_cmyk_16l_jpeg.tif diff --git a/Tests/images/tiff_strip_cmyk_16l_jpeg.tif b/Tests/images/tiff_strip_cmyk_16l_jpeg.tif new file mode 100644 index 0000000000000000000000000000000000000000..8bfd8bd6a89de06f486120d3f0263d0213a209b6 GIT binary patch literal 96472 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