ImageMagick-使颜色半透明

时间:2019-01-15 08:55:24

标签: imagemagick

我正在尝试将image1覆盖在image2上。我想使image1中的颜色半透明。到目前为止,我只能使用

在image2上覆盖image1
composite -gravity north image2.png image1.png image3.png

在将image1覆盖在image2上之前,如何使它的颜色(在这种情况下为灰色)是半透明的?

我正在使用:

Version: ImageMagick 7.0.8-23 Q16 x86_64 2019-01-09 

Thnx

1 个答案:

答案 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;

enter image description here

假设我们的起始图像是这样:

enter image description here

我们现在可以将中间灰色精确地变成半透明中间灰色,并像这样叠加:

convert -size 200x438 xc:"gray(80,80,80)" xc:gray xc:"gray(200,200,200)" +append image2.png

enter image description here

或者,如果我们也想影响灰色(80),可以加入一些绒毛:

convert bean.jpg \( image2.png -fill "rgba(128,128,128,0.5)" -opaque gray \) -composite result.png

enter image description here


请注意,在 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 记住您​​所说的内容如果您要加载任何东西,就想完成。