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

能否用ImageMagick将图像按颜色拆分为同分辨率的单个PNG?

用ImageMagick实现按颜色分离图像

完全可以用ImageMagick实现你的需求,下面是具体操作步骤:

1. 提取图像中的所有唯一颜色

首先执行以下命令,获取输入图像里的所有独特颜色:

convert input.png -unique-colors txt:-

命令输出会列出图像中所有存在的颜色(格式为坐标: 颜色值),比如示例笑脸图会输出黄色、蓝色、黑色这三个颜色。

2. 批量生成单颜色图像

使用bash循环,针对每个颜色生成仅保留该颜色的PNG文件(其余区域设为透明):

# 提取所有唯一颜色值
colors=$(convert input.png -unique-colors txt:- | grep -v "^#" | awk '{print $2}')

# 循环处理每个颜色
count=1
for color in $colors; do
  convert input.png -fill none -fuzz 0% -opaque "$color" "single_color_$count.png"
  count=$((count+1))
done

参数说明:

  • -fuzz 0%:精确匹配目标颜色,若允许相近色匹配可调整数值(如5%)
  • -opaque "$color":将所有不是该颜色的像素替换为透明(由-fill none指定)
  • 输出文件按序号命名,也可修改为用颜色值命名(如yellow_face.png)

执行后,每个输出文件都会保持原图像16x16的分辨率,且仅保留一种颜色。如果输入图像有10种颜色,会自动生成10个对应PNG文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 20:12:08