如何将图像流管道输入ImageMagick的identify命令统计唯一颜色?
identify工具管道传流功能说明
ImageMagick的identify完全支持通过管道传入无需写入硬盘的图像数据流,可直接集成到脚本流程中使用。
核心使用要求
该功能的使用需要符合两个规则,否则无法正常解析数据:
- 管道传入的必须是编码后的完整二进制图像数据,而非文件路径、文本标识类内容,你之前提到的
echo xxx | identify写法因为传入的是纯文本,本身不属于有效图像数据,是无法正常工作的 - 命令末尾需要加上
-作为显式输入标识,告知identify从标准输入流读取内容,而非等待本地文件路径输入
可直接复用的使用示例
- 从其他图像处理工具的输出流直接接入统计,无需落盘:
convert -size 200x100 gradient:red-blue png:- | identify -unique-colors -
- 从网络拉取的图像流直接接入统计,不保存本地副本:
curl -s 目标图像地址 | identify -unique-colors -
注意事项
- 从管道读取得到的唯一颜色统计结果,和你之前读取本地图像文件的统计逻辑、准确度完全一致,不会因为输入源差异产生结果偏差
- 不可省略末尾的
-标识:如果不指定输入源,identify会默认进入交互等待模式,无法正确读取管道传入的流数据
内容的提问来源于stack exchange,提问作者GFL
相关产品推荐
相关产品推荐

