Сдвиг оттенка на существующих изображениях с помощью imagemagick -modulate из значений Photoshop Hue/Saturation

Я пытаюсь изменить оттенок этого изображения (и других подобных ему) с различными градиентами и т. Д. От "синего" до другого цвета, как определено моим дизайнером, из макетов, сделанных в Photoshop.

Я добавил 2 экрана Hue/Saturation из Photoshop со значениями HSL для фиолетового и оранжевого, но с помощью -modulate в Imagemagick через этот код рубина:

# burnt orange - works
hue = 25.0 # must be a decimal
sat = 100
bri = 0

# purple - does not work
#hue = 266.0 # must be a decimal
#sat = 100
#bri = 0

# formula from -modulate http://www.imagemagick.org/Usage/color_mods/#modulate
h = ( hue * 100/180 ) + 100

system("convert -define modulate:colorspace=HSB home_tab_back_right.png -modulate #{h},#{sat},#{bri} #{h}-#{sat}-#{bri}-home_tab_back_right.png")

Это будет работать для сожженного оранжевого изображения, но не для фиолетового и других цветов, которые мне дали.

Я добился большего успеха, передав "modulate:colorspace=HSB", чем без него, но все еще не смог последовательно добавить значения, полученные из Photoshop, и заставить его взять базовое синее изображение и сместить оттенок.

Можно ли это сделать?

базовое синее изображение я бы хотел перенести на другой цвет

насыщенность оранжевого оттенка от фотошопа

насыщенность фиолетового оттенка от фотошопа

1 ответ

Я заметил ошибку в приведенном выше коде. Опция "-modulate" ImageMagick ожидает числа в следующем порядке: $ яркость, $ насыщенность, $ оттенок.

Мне нужно было превратить изображения "original.png" во вложенных папках из исходного синего цвета в красный и зеленый версии.

Вот что я использовал для красного:

for dir in *; do convert -define modulate:colorspace=HSB $dir/original.png -modulate 100,100,180 $dir/original_red.png; done;

Вот что я использовал для Грина:

for dir in *; do convert -define modulate:colorspace=HSB $dir/original.png -modulate 100,100,270 $dir/original_green.png; done;

Обратите внимание, что выше я сохранил яркость и насыщенность такими же, как и в оригинале (100), и настроил оттенок (180 для синего> красного и 270 для зеленого> красного).

Надеюсь, что это полезно!

Другие вопросы по тегам