Skip to content

Commit

Permalink
Merge pull request python-pillow#6042 from radarhere/tiff_bits
Browse files Browse the repository at this point in the history
Clarify code and comments
  • Loading branch information
mergify[bot] authored Feb 10, 2022
2 parents f5fab32 + 1f82202 commit 89768e3
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 9 deletions.
12 changes: 6 additions & 6 deletions Tests/test_file_tiff.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,17 +91,17 @@ def test_mac_tiff(self):
assert_image_similar_tofile(im, "Tests/images/pil136.png", 1)

@pytest.mark.parametrize(
"file_name,mode,w,h,offset",
"file_name,mode,size,offset",
[
("tiff_wrong_bits_per_sample.tiff", "RGBA", 52, 53, 160),
("tiff_wrong_bits_per_sample_2.tiff", "RGB", 16, 16, 8),
("tiff_wrong_bits_per_sample.tiff", "RGBA", (52, 53), 160),
("tiff_wrong_bits_per_sample_2.tiff", "RGB", (16, 16), 8),
],
)
def test_wrong_bits_per_sample(self, file_name, mode, w, h, offset):
def test_wrong_bits_per_sample(self, file_name, mode, size, offset):
with Image.open("Tests/images/" + file_name) as im:
assert im.mode == mode
assert im.size == (w, h)
assert im.tile == [("raw", (0, 0, w, h), offset, (mode, 0, 1))]
assert im.size == size
assert im.tile == [("raw", (0, 0) + size, offset, (mode, 0, 1))]
im.load()

def test_set_legacy_api(self):
Expand Down
7 changes: 4 additions & 3 deletions src/PIL/TiffImagePlugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -1332,13 +1332,14 @@ def _setup(self):
else:
bps_count = 1
bps_count += len(extra_tuple)
# Some files have only one value in bps_tuple,
# while should have more. Or have more values
# than expected. Fix it
bps_actual_count = len(bps_tuple)
if bps_count < bps_actual_count:
# If a file has more values in bps_tuple than expected,
# remove the excess.
bps_tuple = bps_tuple[:bps_count]
elif bps_count > bps_actual_count and bps_actual_count == 1:
# If a file has only one value in bps_tuple, when it should have more,
# presume it is the same number of bits for all of the samples.
bps_tuple = bps_tuple * bps_count

samplesPerPixel = self.tag_v2.get(
Expand Down

0 comments on commit 89768e3

Please sign in to comment.