mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-06-04 05:03:14 +03:00
Merge d8afcb762f
into 7e4d8e2f55
This commit is contained in:
commit
9862f08fc0
BIN
Tests/images/no_palette_with_transparency_after_rgb.gif
Normal file
BIN
Tests/images/no_palette_with_transparency_after_rgb.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
|
@ -100,6 +100,18 @@ def test_l_mode_after_rgb() -> None:
|
||||||
assert im.mode == "RGB"
|
assert im.mode == "RGB"
|
||||||
|
|
||||||
|
|
||||||
|
def test_l_mode_transparency_after_rgb() -> None:
|
||||||
|
with Image.open("Tests/images/no_palette_with_transparency_after_rgb.gif") as im:
|
||||||
|
expected = im.convert("RGB")
|
||||||
|
d = ImageDraw.Draw(expected)
|
||||||
|
d.rectangle([(0, 0), (64, 128)], fill="#000")
|
||||||
|
|
||||||
|
im.seek(1)
|
||||||
|
assert im.mode == "RGB"
|
||||||
|
|
||||||
|
assert_image_equal(im, expected)
|
||||||
|
|
||||||
|
|
||||||
def test_palette_not_needed_for_second_frame() -> None:
|
def test_palette_not_needed_for_second_frame() -> None:
|
||||||
with Image.open("Tests/images/palette_not_needed_for_second_frame.gif") as im:
|
with Image.open("Tests/images/palette_not_needed_for_second_frame.gif") as im:
|
||||||
im.seek(1)
|
im.seek(1)
|
||||||
|
|
|
@ -477,8 +477,11 @@ class GifImageFile(ImageFile.ImageFile):
|
||||||
self._prev_im = expanded_im
|
self._prev_im = expanded_im
|
||||||
assert self._prev_im is not None
|
assert self._prev_im is not None
|
||||||
if self._frame_transparency is not None:
|
if self._frame_transparency is not None:
|
||||||
self.im.putpalettealpha(self._frame_transparency, 0)
|
if self.mode == "L":
|
||||||
frame_im = self.im.convert("RGBA")
|
frame_im = self.im.convert_transparent("LA", self._frame_transparency)
|
||||||
|
else:
|
||||||
|
self.im.putpalettealpha(self._frame_transparency, 0)
|
||||||
|
frame_im = self.im.convert("RGBA")
|
||||||
else:
|
else:
|
||||||
frame_im = self.im.convert("RGB")
|
frame_im = self.im.convert("RGB")
|
||||||
|
|
||||||
|
@ -487,7 +490,7 @@ class GifImageFile(ImageFile.ImageFile):
|
||||||
|
|
||||||
self.im = self._prev_im
|
self.im = self._prev_im
|
||||||
self._mode = self.im.mode
|
self._mode = self.im.mode
|
||||||
if frame_im.mode == "RGBA":
|
if frame_im.mode in ("LA", "RGBA"):
|
||||||
self.im.paste(frame_im, self.dispose_extent, frame_im)
|
self.im.paste(frame_im, self.dispose_extent, frame_im)
|
||||||
else:
|
else:
|
||||||
self.im.paste(frame_im, self.dispose_extent)
|
self.im.paste(frame_im, self.dispose_extent)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user