mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-26 18:06:18 +03:00
Merge pull request #309 from yoavweiss/master
Add RGBA support to ImageColor
This commit is contained in:
commit
b72471c8fe
|
@ -30,7 +30,6 @@ import re
|
||||||
# as an RGB value.
|
# as an RGB value.
|
||||||
|
|
||||||
def getrgb(color):
|
def getrgb(color):
|
||||||
# FIXME: add RGBA support
|
|
||||||
try:
|
try:
|
||||||
rgb = colormap[color]
|
rgb = colormap[color]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
|
@ -87,6 +86,14 @@ def getrgb(color):
|
||||||
int(rgb[1] * 255 + 0.5),
|
int(rgb[1] * 255 + 0.5),
|
||||||
int(rgb[2] * 255 + 0.5)
|
int(rgb[2] * 255 + 0.5)
|
||||||
)
|
)
|
||||||
|
m = re.match("rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$", color)
|
||||||
|
if m:
|
||||||
|
return (
|
||||||
|
int(m.group(1)),
|
||||||
|
int(m.group(2)),
|
||||||
|
int(m.group(3)),
|
||||||
|
int(m.group(4))
|
||||||
|
)
|
||||||
raise ValueError("unknown color specifier: %r" % color)
|
raise ValueError("unknown color specifier: %r" % color)
|
||||||
|
|
||||||
def getcolor(color, mode):
|
def getcolor(color, mode):
|
||||||
|
@ -95,8 +102,8 @@ def getcolor(color, mode):
|
||||||
if mode == "RGB":
|
if mode == "RGB":
|
||||||
return color
|
return color
|
||||||
if mode == "RGBA":
|
if mode == "RGBA":
|
||||||
r, g, b = color
|
r, g, b, a = color
|
||||||
return r, g, b, 255
|
return r, g, b, a
|
||||||
if Image.getmodebase(mode) == "L":
|
if Image.getmodebase(mode) == "L":
|
||||||
r, g, b = color
|
r, g, b = color
|
||||||
return (r*299 + g*587 + b*114)//1000
|
return (r*299 + g*587 + b*114)//1000
|
||||||
|
|
|
@ -9,8 +9,11 @@ from PIL import ImageColor
|
||||||
assert_equal((255, 0, 0), ImageColor.getrgb("#f00"))
|
assert_equal((255, 0, 0), ImageColor.getrgb("#f00"))
|
||||||
assert_equal((255, 0, 0), ImageColor.getrgb("#ff0000"))
|
assert_equal((255, 0, 0), ImageColor.getrgb("#ff0000"))
|
||||||
assert_equal((255, 0, 0), ImageColor.getrgb("rgb(255,0,0)"))
|
assert_equal((255, 0, 0), ImageColor.getrgb("rgb(255,0,0)"))
|
||||||
|
assert_equal((255, 0, 0), ImageColor.getrgb("rgb(255, 0, 0)"))
|
||||||
assert_equal((255, 0, 0), ImageColor.getrgb("rgb(100%,0%,0%)"))
|
assert_equal((255, 0, 0), ImageColor.getrgb("rgb(100%,0%,0%)"))
|
||||||
assert_equal((255, 0, 0), ImageColor.getrgb("hsl(0, 100%, 50%)"))
|
assert_equal((255, 0, 0), ImageColor.getrgb("hsl(0, 100%, 50%)"))
|
||||||
|
assert_equal((255, 0, 0, 0), ImageColor.getrgb("rgba(255,0,0,0)"))
|
||||||
|
assert_equal((255, 0, 0, 0), ImageColor.getrgb("rgba(255, 0, 0, 0)"))
|
||||||
assert_equal((255, 0, 0), ImageColor.getrgb("red"))
|
assert_equal((255, 0, 0), ImageColor.getrgb("red"))
|
||||||
|
|
||||||
# --------------------------------------------------------------------
|
# --------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue
Block a user