颜色替换函数.py

如本文章标有价格,需议价或其它事情商议请加微信pythonxia

"""
   颜色替换函数.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')

本站所有作品,教程等皆为原创,版权所有。只供个人及单位内部研究使用,对外展示或传播必需经本站同意,且注明来自本站。培训机构等用本站资源培训学生,需经本站授权。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。亦可直接向微信号scratch8付款购买。入住QQ群:225792826 和爱好者共同交流,并且能下载免费提供的Python资源(需提供真实姓名才可入群)
李兴球的博客_Python创意编程技术前沿_pygame » 颜色替换函数.py
scratch

学本领,探索更大的世界!

李兴球博客 风火轮编程主页