mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-11-10 19:56:47 +03:00
Merge pull request #2 from radarhere/fix6652/imagepalette_rgba_color
Corrected test
This commit is contained in:
commit
9133f35096
|
@ -345,13 +345,14 @@ class TestCffi(AccessTest):
|
|||
|
||||
@pytest.mark.parametrize("mode", ("P", "PA"))
|
||||
def test_p_putpixel_rgb_rgba(self, mode):
|
||||
for color in [(255, 0, 0), (255, 0, 0, 127)]:
|
||||
for color in ((255, 0, 0), (255, 0, 0, 127 if mode == "PA" else 255)):
|
||||
im = Image.new(mode, (1, 1))
|
||||
access = PyAccess.new(im, False)
|
||||
access.putpixel((0, 0), color)
|
||||
|
||||
alpha = color[3] if len(color) == 4 and mode == "PA" else 255
|
||||
assert im.convert("RGBA").getpixel((0, 0)) == (255, 0, 0, alpha)
|
||||
if len(color) == 3:
|
||||
color += (255,)
|
||||
assert im.convert("RGBA").getpixel((0, 0)) == color
|
||||
|
||||
|
||||
class TestImagePutPixelError(AccessTest):
|
||||
|
|
|
@ -50,11 +50,12 @@ def test_getcolor():
|
|||
palette.getcolor("unknown")
|
||||
|
||||
|
||||
def test_getcolor_raises_on_incompatible_color():
|
||||
palette = ImagePalette.ImagePalette(mode="RGB")
|
||||
# Opaque RGBA colors should work
|
||||
palette.getcolor((0, 0, 0, 255))
|
||||
assert palette.getcolor((0, 0, 0)) == palette.getcolor((0, 0, 0, 255))
|
||||
def test_getcolor_rgba_color_rgb_palette():
|
||||
palette = ImagePalette.ImagePalette("RGB")
|
||||
|
||||
# Opaque RGBA colors are converted
|
||||
assert palette.getcolor((0, 0, 0, 255)) == palette.getcolor((0, 0, 0))
|
||||
|
||||
with pytest.raises(ValueError):
|
||||
palette.getcolor((0, 0, 0, 128))
|
||||
|
||||
|
|
|
@ -114,13 +114,13 @@ class ImagePalette:
|
|||
if self.rawmode:
|
||||
raise ValueError("palette contains raw palette data")
|
||||
if isinstance(color, tuple):
|
||||
if self.mode == "RGB" and len(color) == 4:
|
||||
if color[3] == 255:
|
||||
if self.mode == "RGB":
|
||||
if len(color) == 4:
|
||||
if color[3] != 255:
|
||||
raise ValueError(
|
||||
"cannot add non-opaque RGBA color to RGB palette"
|
||||
)
|
||||
color = color[:3]
|
||||
else:
|
||||
raise ValueError(
|
||||
"RGB ImagePalette can't handle non-opaque RGBA colors"
|
||||
)
|
||||
elif self.mode == "RGBA":
|
||||
if len(color) == 3:
|
||||
color += (255,)
|
||||
|
|
Loading…
Reference in New Issue
Block a user