mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-06-02 12:13:26 +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"
|
||||
|
||||
|
||||
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:
|
||||
with Image.open("Tests/images/palette_not_needed_for_second_frame.gif") as im:
|
||||
im.seek(1)
|
||||
|
|
|
@ -477,8 +477,11 @@ class GifImageFile(ImageFile.ImageFile):
|
|||
self._prev_im = expanded_im
|
||||
assert self._prev_im is not None
|
||||
if self._frame_transparency is not None:
|
||||
self.im.putpalettealpha(self._frame_transparency, 0)
|
||||
frame_im = self.im.convert("RGBA")
|
||||
if self.mode == "L":
|
||||
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:
|
||||
frame_im = self.im.convert("RGB")
|
||||
|
||||
|
@ -487,7 +490,7 @@ class GifImageFile(ImageFile.ImageFile):
|
|||
|
||||
self.im = self._prev_im
|
||||
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)
|
||||
else:
|
||||
self.im.paste(frame_im, self.dispose_extent)
|
||||
|
|
Loading…
Reference in New Issue
Block a user