如何使用Imagemagick在shutterstock.com中创建像受版权保护的图像一样的文字效果?

时间:2018-01-17 11:14:53

标签: imagemagick imagemagick-convert

在搜索谷歌时,我们看到许多带有文字叠加效果的图片声称这些图片来自shutterstock.com。

此文本效果类似于以下内容:

https://thumb7.shutterstock.com/display_pic_with_logo/4187557/559982074/stock-vector-few-little-houses-in-the-winter-forest-landscape-flat-style-vector-seamless-pattern-559982074.jpg

我想知道如何使用ImageMagick cli做类似的事情?

非常感谢您的帮助。

4 个答案:

答案 0 :(得分:2)

理想情况下,您可以使用文本效果创建水印蒙版,并在源图像上进行合成。

第1步:创建文字效果以便重复使用

convert -pointsize 64 -font GeorgiaB \
        -fill black -stroke white -strokewidth 2 \
        -background transparent -channel A -evaluate subtract 75% \
        caption:"Hello World" mask.png

mask.png

第2步:对其他图片进行复合文字效果

convert -size 500x400 plasma: mask.png \
        -gravity center -compose ATop  -composite output.png

output.png

还有更多的文字处理示例和效果,以及@ Anthony's Usage documentation上的复合技术。

答案 1 :(得分:2)

有很多方法可以在底部添加带有文字的白色区域。这是一。如果那不是你想要的,那么请进一步解释。

infile="tile_aqua_500.jpg"
ww=$(convert -ping "$infile" -format "%[fx:w-1]" info:)
hh=$(convert -ping "$infile" -format "%[fx:h-1]" info:)
convert "$infile" \
-fill "graya(100%,0.75)" \
-draw "line 0,0 $ww,$hh line $ww,0 0,$hh" -alpha off \
-fill "graya(50%,0.25)" \
-strokewidth 1 -stroke "graya(100%,0.25)" \
-gravity center -font arial -pointsize 48 \
-annotate +0+0 "Hello World" \
-undercolor white -gravity southeast -pointsize 24 \
-fill black -annotate +10+10 "yourdomain.com" \
tile_aqua_500_text_x_text.jpg

enter image description here

答案 2 :(得分:1)

这是使用Imagemagick -annotate直接在图像上绘制文本的emcconville中的优秀方法。我从一个小的可填充图像开始,我将其放大到500x500大小,然后在中灰色和50%透明白色轮廓上绘制50%透明度的文本。您可以根据需要更改灰色和透明度的阴影以及字体和品脱大小。更改+ 0 + 0以相对于重心移动文本的位置。更改 - 重力到其他指南针位置以相对于这些位置绘制文本。

convert -size 500x500 tile:tile_aqua.jpg \
-fill "graya(50%,0.5)" -strokewidth 1 -stroke "graya(100%,0.5)" \
-gravity center -font arial -pointsize 64 \
-annotate +0+0 "Hello World" result.jpg

enter image description here

convert -size 500x500 tile:tile_aqua.jpg \
-fill "graya(50%,0.25)" -strokewidth 1 -stroke "graya(100%,0.25)" \
-gravity southeast -font arial -pointsize 48 \
-annotate +50+50 "Hello World" result1.jpg

enter image description here

答案 3 :(得分:1)

  

嗨fmw42,谢谢:)我怎样才能添加像Shutterstock.com这样的大X?

在角落之间画出两条对角线。

输入(tile_aqua_500.jpg):

enter image description here

在Imagemagick 6 Unix系统中:

infile="tile_aqua_500.jpg"
ww=$(convert -ping "$infile" -format "%[fx:w-1]" info:)
hh=$(convert -ping "$infile" -format "%[fx:h-1]" info:)
convert "$infile" \
-fill "graya(100%,0.75)" \
-draw "line 0,0 $ww,$hh line $ww,0 0,$hh" -alpha off \
-fill "graya(50%,0.25)" \
-strokewidth 1 -stroke "graya(100%,0.25)" \
-gravity center -font arial -pointsize 48 \
-annotate +0+0 "Hello World" tile_aqua_500_text_x.jpg

在Imagemagick 7 Unix系统中:

infile="tile_aqua_500.jpg"
magick "$infile" \
-fill "graya(100%,0.75)" \
-draw "line 0,0 %[fx:w-1],%[fx:h-1] line %[fx:w-1],0 0,%[fx:h-1]" -alpha off \
-fill "graya(50%,0.25)" \
-strokewidth 1 -stroke "graya(100%,0.25)" \
-gravity center -font arial -pointsize 48 \
-annotate +0+0 "Hello World" tile_aqua_500_text_x.jpg

任一命令的结果:

enter image description here