2016-08-20 10 views
0

У меня есть около 10 000 изображений, которые мне нужны, чтобы получить цвет Hex для каждого из них. Я, очевидно, могу сделать это вручную с помощью PS или других инструментов, но я ищу решение, которое идеально было бы:Пакетный экстракт Hex color from images to file

  1. Запуск против папки, полной изображений JPG.
  2. Извлечь шестерку из мертвой точки изображения.
  3. Вывести результат в текстовый файл, в идеале - CSV, содержащий имя файла и полученный шестнадцатеричный код в каждой строке.

Может кто-нибудь предложить что-то, что сэкономит мое здравомыслие, пожалуйста? Ура!

+0

Вы работаете в Windows или OSX? Вы все файлы в одном каталоге или распространяетесь по нескольким каталогам? –

ответ

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 

Примечание:

Если у вас есть больше файлов в каталоге, чем ваша оболочка может glob, возможно, вам лучше дать ImageMagick сделать подстановку внутренне, а не с помощью оболочки с:

convert '*.jpg' ... 

Если файлы большие, вы можете лучше делать их один на один раз в цикле, а не загружать их все в памяти:

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

Вы, сэр, легенда. Спасибо :). – d1ch0t0my

+0

Мое удовольствие - удачи в вашем проекте. –