Updated default value for SAMPLESPERPIXEL tag

This commit is contained in:
Andrew Murray 2021-05-04 16:50:12 +10:00
parent 20b8a83773
commit 6fc039a21c
3 changed files with 11 additions and 3 deletions

View File

@ -901,8 +901,13 @@ class TestFileLibTiff(LibTiffTestCase):
assert_image_equal_tofile(im, "Tests/images/tiff_16bit_RGBa_target.png")
def test_old_style_jpeg(self):
infile = "Tests/images/old-style-jpeg-compression.tif"
with Image.open(infile) as im:
with Image.open("Tests/images/old-style-jpeg-compression.tif") as im:
assert_image_equal_tofile(im, "Tests/images/old-style-jpeg-compression.png")
def test_open_missing_samplesperpixel(self):
with Image.open(
"Tests/images/old-style-jpeg-compression-no-samplesperpixel.tif"
) as im:
assert_image_equal_tofile(im, "Tests/images/old-style-jpeg-compression.png")
def test_no_rows_per_strip(self):

View File

@ -1251,7 +1251,10 @@ class TiffImageFile(ImageFile.ImageFile):
if bps_count > len(bps_tuple) and len(bps_tuple) == 1:
bps_tuple = bps_tuple * bps_count
samplesPerPixel = self.tag_v2.get(SAMPLESPERPIXEL, 1)
samplesPerPixel = self.tag_v2.get(
SAMPLESPERPIXEL,
3 if self._compression == "tiff_jpeg" and photo in (2, 6) else 1,
)
if len(bps_tuple) != samplesPerPixel:
raise SyntaxError("unknown data organization")