使用ImageMagick的堆栈到图像的选择性模糊部分
-
22-08-2019 - |
题
我想要注释一些文本到基础图像与阴影效果。我不喜欢的结果,我从使用-shadow选项得到的,所以我放下文字,模糊,然后在白又放下文字,几个像素从阴影偏移。下面是我使用的命令:
convert base_image.jpg \
-font TT0590M_.ttf \
-fill gray30 \
-annotate +0+0 '' -gravity North \
-annotate +72+32 'ABCDEFGHIJKLM' \
-blur 0x4 \
-fill white \
-annotate +72+27 'ABCDEFGHIJKLM' \
combined.png
我的问题是,-blur选项模糊不仅文本的第一层,但潜在的基本图像,以及。我只希望文字的第一层模糊,没有基本图像。
我读了一点上使用栈和试图文本的第一层,并使用围绕该部分\( \)
如在下面的模糊命令,隔离:
convert base_image.jpg \
-font TT0590M_.ttf \
-fill gray30 \
-annotate +0+0 '' -gravity North \
\( -annotate +72+32 'ABCDEFGHIJKLM' \
-blur 0x4 \) \
-fill white \
-annotate +72+27 'ABCDEFGHIJKLM' \
combined.png
的结果是相同的 - 两者文字阴影和底层基础图像越来越所迷离。我怕我没有多少运气了解堆栈或者我应该用得到我后的效果还有什么其他的命令。
解决方案
由于经常发生的,我一直在继续,因为发帖的问题在这个一鼓作气走,我已经成功地解决它在我自己的。
在重要的变化是我开始与一个空白,透明帆布,而不是与基本图像开始。后我得到的文本右,我插入基本图像进栈,交换两个图像的顺序在堆栈中,然后用撰写类型的“屏幕”的,其中规定了其他的一个越顶复合它们。
另外一个说明的进口:需要的声道RGBA,使得在与所述文本层的透明性,结合由于在IM工作方式的特点模糊作品。为什么这是必要的解释在这个页。
此外,在Windows系统(.bat文件,而不是shell脚本),单引号需要用双引号和反斜杠“\”必须插入符号“^”,或者这一切都轰然倒下。
下面的脚本是最后的,工作结果(* nix的版本):
convert \
-size 500x500 xc:transparent \
-font TT0590M_.ttf \
-annotate +0+0 '' -gravity North \
-fill gray30 \
-annotate +75+35 'ABCDEFGHIJKLMNOPQR\nABCDEFGHIJKLMNOPQR' \
-channel RGBA \
-blur 0x4 \
-fill white \
-annotate +72+30 'ABCDEFGHIJKLMNOPQR\nABCDEFGHIJKLMNOPQR' \
-insert 0 base_image.jpg \
-swap 0,1 \
-composite -compose screen \
combined.png
不隶属于 StackOverflow