从图像批量提取十六进制颜色到文件

Batch extract Hex colour from images to file

我有大约 1 万张图片,我需要从中获取每张图片的十六进制颜色。我显然可以使用 PS 或其他工具手动执行此操作,但我正在寻找理想的解决方案:

  1. 运行 对一个装满 JPG 图片的文件夹。
  2. 从图像的死点提取十六进制。
  3. 将结果输出到文本文件,最好是 CSV,每行包含文件名和生成的十六进制代码。

任何人都可以提出一些可以挽救我理智的东西吗?干杯!

我建议 ImageMagick 安装在大多数 Linux 发行版上并且可用于 OSX(通过 homebrew)和 Windows.

因此,仅在命令行中,在一个充满 JPG 图像的目录中,您可以 运行 这个:

convert *.jpg -gravity center -crop 1x1+0+0 -format "%f,%[fx:int(mean.r*255)],%[fx:int(mean.g*255)],%[fx:int(mean.b*255)]\n" info:

示例输出

a.png,127,0,128
b.jpg,127,0,129
b.png,255,0,0

备注:

如果目录中的文件多于 shell 可以通配的数量,则最好让 ImageMagick 在内部进行通配,而不是使用 shell,其中:

convert '*.jpg' ...

如果您的文件很大,您最好一次一个地循环处理它们,而不是将它们全部加载到内存中:

for f in *.jpg; do convert "$f" ....... ; done