Case-insensitive color names

This commit is contained in:
missionfloyd 2023-04-09 13:54:13 -06:00 committed by GitHub
parent 23a93b40f3
commit 29bbe8e2e4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -163,7 +163,7 @@ class QuantizePalette:
return { return {
"required": { "required": {
"image": ("IMAGE",), "image": ("IMAGE",),
"palette": ("STRING", {"default": "#000000, #ffffff", "multiline": True}), "palette": ("STRING", {"default": "black, white", "multiline": True}),
"dither": (["none", "floyd-steinberg"],), "dither": (["none", "floyd-steinberg"],),
}, },
} }
@ -186,7 +186,7 @@ class QuantizePalette:
raise ValueError("Palette is empty") raise ValueError("Palette is empty")
def parse_palette(color_str): def parse_palette(color_str):
if re.match(r'#[a-fA-F0-9]{6}', color_str) or color_str.lower() in ImageColor.colormap: if re.match(r'#[a-fA-F0-9]{6}', color_str) or color_str.lower() in ImageColor.colormap:
return ImageColor.getrgb(color_str) return ImageColor.getrgb(color_str)
color_rgb = re.match(r'\(?(\d{1,3}),(\d{1,3}),(\d{1,3})\)?', color_str) color_rgb = re.match(r'\(?(\d{1,3}),(\d{1,3}),(\d{1,3})\)?', color_str)
@ -197,7 +197,7 @@ class QuantizePalette:
pal_img = Image.new('P', (1, 1)) pal_img = Image.new('P', (1, 1))
pal_colors = palette.replace(" ", "") pal_colors = palette.replace(" ", "")
pal_colors = re.findall(fr'#[a-fA-F0-9]{{6}}|\(?\d{{1,3}},\d{{1,3}},\d{{1,3}}\)?|{"|".join(ImageColor.colormap.keys())}', pal_colors) pal_colors = re.findall(fr'#[a-fA-F0-9]{{6}}|\(?\d{{1,3}},\d{{1,3}},\d{{1,3}}\)?|{"|".join(ImageColor.colormap.keys())}', pal_colors, re.IGNORECASE)
pal_colors = list(itertools.chain.from_iterable(map(parse_palette, pal_colors))) pal_colors = list(itertools.chain.from_iterable(map(parse_palette, pal_colors)))
pal_img.putpalette(pal_colors) pal_img.putpalette(pal_colors)