我正在尝试将image1覆盖在image2上。我想使image1中的颜色半透明。到目前为止,我只能使用
在image2上覆盖image1composite -gravity north image2.png image1.png image3.png
在将image1覆盖在image2上之前,如何使它的颜色(在这种情况下为灰色)是半透明的?
我正在使用:
Version: ImageMagick 7.0.8-23 Q16 x86_64 2019-01-09
Thnx
答案 0 :(得分:2)
首先创建一个叠加层(image2.png),从左80/255,中间128/255和右200/255开始,使用3种逐渐变浅的灰色阴影:
set $ui http://ui:9000/backend;
resolver 127.0.0.11 valid=5m;
proxy_pass $ui;
假设我们的起始图像是这样:
我们现在可以将中间灰色精确地变成半透明中间灰色,并像这样叠加:
convert -size 200x438 xc:"gray(80,80,80)" xc:gray xc:"gray(200,200,200)" +append image2.png
或者,如果我们也想影响灰色(80),可以加入一些绒毛:
convert bean.jpg \( image2.png -fill "rgba(128,128,128,0.5)" -opaque gray \) -composite result.png
请注意,在 ImageMagick 的版本7中,命令已更改:
convert bean.jpg \( image2.png -fill "rgba(128,128,128,0.5)" -fuzz 20% -opaque gray \) -composite result.png
参数的顺序也更严格,有利于:
Version 6 | Version 7
=================================
identify | magick identify
convert | magick
mogrify | magick mogrify
composite | magick composite
montage | magick montage
compare | magick compare
animate | magick animate
stream | magick stream
结束:
magick [settings] INPUT [settings] [operators] OUTPUT
我的意思是,您应该在将运算符应用于图像之前先加载图像,而不是建立运算符列表然后加载图像,并希望 ImageMagick 记住您所说的内容如果您要加载任何东西,就想完成。