系统相关
首页 > 系统相关> > linux-如何在ImageMagick中使用带有标题的stdin

linux-如何在ImageMagick中使用带有标题的stdin

作者:互联网

通过阅读有关文本的ImageMagick documentation,我的理解是@-表示法会读取标准输入的内容.

因此,这应该是渲染Hello World的相当简单的方法.

printf "Hello\nWorld" | 
convert \
  -size 1280x100 \
  -background '#0000FF10' \
  -density 90 \
  -gravity Center \
  -fill black \
  -font Helvetica \
  caption:@- \
  test.png

在通过HomeBrew通过OS X 10.11.5上运行的情况下,使用转换版本有效:ImageMagick 6.9.4-3 Q16 x86_64 2016-05-20.

enter image description here

但是在Ubuntu 16.04 LTS上,使用convert版本的相同命令无法正常工作:ImageMagick 6.8.9-9 Q16 x86_64 2016-06-01.实际上,它从字面上呈现了stdin运算符.

enter image description here

我唯一能找到的在Google上看起来像是这个问题的远程文件是this article,该文件可以追溯到2015年10月,其中对ImageMagick 6.9.2-5 Beta进行了修补以解决类似问题.

问题:我是否没有正确地转义它,或者ImageMagick确实存在问题,还是我的Linux Distro使用错误捕获了ImageMagick的历史版本,我需要build from source吗?

经过许多实验之后

解决了 …?从Ubuntu盒子上的源代码构建ImageMagick 7.0.2,上面的命令按需工作.有更好的解决方案吗?

解决方法:

无需从源代码构建.只需将@-替换为“`tee`”:

printf "Hello\nWorld" | 
convert \
  -size 1280x100 \
  -background '#0000FF10' \
  -density 90 \
  -gravity Center \
  -fill black \
  -font Helvetica \
  caption:"`tee`" \
  test.png

在完成转换命令之前,`tee`将首先执行,’stdin’将执行.

标签:imagemagick-convert,bash,ubuntu,imagemagick,linux
来源: https://codeday.me/bug/20191026/1940362.html