我试图将这个图像的色调(以及其他类似的图像)转换为来自" blue"的变化渐变等。我的设计师从Photoshop中完成的模型中定义的另一种颜色。
我已经从Photoshop附加了2个Hue / Saturation屏幕,其中HSL值为紫色和橙色,但在Imagemagick中通过此ruby代码使用-modulate:
# 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收到的值,并采取基本的蓝色图像和转移色调。
可以这样做吗?
答案 0 :(得分:2)
我注意到上面代码中的一个错误。 ImageMagick“-modulate”选项实际上预期数字的顺序为:$ brightness,$ saturation,$ hue。
我需要将子文件夹中的“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为绿色>红色)。
希望这有用!