颜色替换函数.py

颜色替换函数.py

"""
   颜色替换函数.py
   替换颜色的一个函数。
   本程序需要gameturtle模块支持,安装方法pip install gameturtle
"""
import numpy as np
from gameturtle import *

def replace_color(im,source,dest):
    """颜色替换函数,把source颜色换成dest颜色
       im:pillow图形对象,
       soucrce: 将要换的颜色值,如[255,0,0,255]为红色
       dest:目标颜色值,如[0,0,0,0]即透明色
       返回pillow图形对象,要求numpy模块和pillow模块支持
    """
    if isinstance(source,str):
        source = ImageColor.getrgb(source)
        source = source[0],source[1],source[2],255
    if isinstance(dest,str):
        dest = ImageColor.getrgb(dest)
        dest = dest[0],dest[1],dest[2],255
    
    im = im.convert("RGBA")
    im = np.array(im)
    mask = np.all(im==source,axis=-1) # 返回所有source颜色逻辑阵列
    im[mask] = dest
    return Image.fromarray(im)

ball = make_ellipse(100,100,'cyan',10,'blue')
ball.save('1.png')
ball = replace_color(ball,'blue','red')               # 蓝的换成红的
ball.save('2.png')

rect = make_rect(100,100,'red',10,'blue')
rect.save('3.png')
rect = replace_color(rect,[255,0,0,255],[0,255,0,255]) # 红的换成绿的
rect.save('4.png')
rect = replace_color(rect,[0,255,0,255],[0,0,0,0]) # 绿的换成空的
rect.save('5.png')

李兴球

李兴球的博客是Python创意编程原创博客