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

时间:2016-08-20 16:57:36

标签: batch-processing photoshop photoshop-script

我有大约10k个图像,我需要从每个图像中获取Hex颜色。我显然可以使用PS或其他工具手动执行此操作,但我正在寻找理想的解决方案:

  1. 针对充满JPG图像的文件夹运行。
  2. 从图像的死点中提取十六进制。
  3. 将结果输出到文本文件,理想情况下为CSV,其中包含文件名以及每行上生成的十六进制代码。
  4. 有人可以建议一些可以拯救我理智的东西吗?干杯!

1 个答案:

答案 0 :(得分:1)

我建议 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