/ / Как да си направите Hex Color Code от изображение в твърдо оцветено изображение за скрипт? - linux, цветове, hex, imagemagick, imagemagick-convert

Как да си направите Hex Color Code от изображение в твърдо оцветено изображение за скрипт? - linux, цветове, hex, imagemagick, imagemagick-convert

Пишех сценария, за да променя моя опитмоята Linux машина на случайно изображение от набор от изображения, които съдържат само плътни цветове. Това, което бих искал да направя, е да разширя този скрипт и да мотивирам някои приложения (най-вече терминални) съответно, най-малкото да променя цвета на текста, да премине от тъмно към светъл фон и т.н. Чудех се какви опции имам получете Hex Code за цвета на изображението. Има ли нещо в Баш, с което мога да направя това? Бих ли трябва да напиша програма на по-солиден език и да имам шестнадесетичен код? Има ли по-добър начин да направите това изцяло? Моето търсене досега е малко неубедително.

Отговори:

1 за отговор № 1

Бих силно препоръчвам да се използва ImageMagick за тази задача. Най- документация споменава как да извличате данни от изображение.

От "Извличане на средния цвят":

Средният цвят на изображението може да бъде намерен многобързо, като използвате "-честота", за да намалите изображението до един пиксел. Тук например е средният цвят на вграденото изображение "роза:". Извеждам цвета с помощта на FX Escape Format, който връща цветен низ, който може да се използва директно без промяна.

user@laptop:~$ convert rose: -scale 1x1! -format "%[pixel:s]n" info:-

Ще продукция: srgb(146,89,80)

Във вашия случай заменете rose: с ваша снимка, като foo.png.

Ако искате изхода директно в шестнадесетичен запис, използвайте следното:

convert rose: -scale 1x1! -format "%[pixel:s]n" info:- | awk -F "[(,)]" "{printf("#%x%x%xn",$2,$3,$4)}"