You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将苹果RGBA图片重绘为非主色调的指定颜色?

图片重绘需求及问题

红黄苹果

我希望将这张苹果RGBA格式的PNG图片重绘为一种颜色,该颜色不属于图片的前4种主色调。

可选目标颜色

R= (255, 0 , 0) #亮红色
G= (0, 204, 0) #浅绿色
B= (0, 145, 255) #天蓝色
O= (255, 154, 0) #橙色
V = (0, 204, 0) #浅紫色(按需使用)

图片前3种主色调

  • (162, 25, 17)
  • (252, 222, 155)
  • (214, 89, 40)

我需要将图片重绘为上述5种颜色中与前3种主色调不相近的一种。

当前卡点:如何将图片重绘为与前3种主色调不相近的指定颜色之一

已编写的部分代码

import glob, os
import random

from PIL import Image, ImageDraw, ImageColor, ImageEnhance           # PIL即Pillow库


#====================================
def main():
    global mask_image
    alphabet = []
    
    #后续用来随机选择R、G、B、O作为主色
    R= (255, 0 , 0) #亮红色
    G= (0, 204, 0) #浅绿色
    B= (0, 145, 255) #天蓝色
    O= (255, 154, 0) #橙色
    V = (0, 204, 0) #浅紫色(按需使用)


    image = Image.open("apple1.png")
    image.show() #编辑前预览
    
    image.convert("RGBA") #确保转换为RGBA格式

    #获取颜色值
    colorValues = image.getdata()
#       colorValues = image.getcolors(maxcolors=256) #返回R、G、B颜色值元组
    print("颜色值 = ", colorValues, "\n\n")

    #通过MeanShift或快速八叉树算法提取主色调
    mainColors = image.quantize(colors = 4, method =2) #使用快速八叉树算法
    print("主色调 = ", mainColors.getpalette()[:12], "\n\n") #图片中的4种主色调
                                                                    #第一个是透明度通道?

    #获取图片尺寸
    w, h = image.size

    #将图片改为随机颜色(如果能改成非主色调的颜色更好)

        
    blank_image = Image.new('RGBA', (w,h), (0, 0, 0, 0)) #创建与原图尺寸相同的透明图片
    
    #设置透明度为0.5
    out_image = Image.blend(blank_image, image, .7)
    out_image.show()


#===============================================================

# 模拟C语言的main函数执行方式,确保Python脚本正确运行
if __name__ == '__main__':
    main()

内容的提问来源于stack exchange,提问作者Miss_Egg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 09:40:25