向og:image添加叠加层

时间:2017-10-31 17:46:48

标签: node.js express image-processing imagemagick image-manipulation

我需要在NodeJs中为Facebook生成水印嵌入图像。我注意到一些网站的Facebook帖子有banner on their image。 使用NodeJ,我想知道什么是最优雅的方式继续下去。(比比如photoshop动作或在其他地方运行的PHP脚本更好)。我猜想将图像裁剪成正确的格式并添加带有ImageMagik的叠加PNG将是可行的选择。您是否了解提供此简单功能的在线服务?

由于此资源很少从FB刷新,因此我不会将其存储在磁盘上并在运行时生成它。

1 个答案:

答案 0 :(得分:0)

在ImageMagick中,您可以使用-annotate创建横幅图像,并在图像上进行合成。例如,从您的图像开始,假设我想在顶部放置一个类似的横幅。我创建了一个所需宽度的半透明背景彩色图像,以匹配您的图像和所需的高度和点数。然后我将它合成在图像的顶部。

convert UT-copy-social.png.jpeg \
\( -size 1200x90 xc:"rgba(255,0,0,0.5)" -font Arial -pointsize 64 \
-fill white -gravity east -annotate +50+0 "TEST" \) \
-gravity north -compose over -composite result.jpg

enter image description here

如果您想要一个半透明渐变横幅,请按如下所示进行修改:

convert UT-copy-social.png.jpeg \
\( -size 90x1200 gradient:"rgba(255,0,0,0.5)-rgba(255,0,255,0.5)" \
-rotate 90 -font Arial -pointsize 64 -fill white \
-gravity east -annotate +50+0 "TEST" \) \
-gravity north -compose over -composite result2.jpg

enter image description here

您也可以使用-draw或label来类似地执行此操作:见http://www.imagemagick.org/Usage/text/