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.
但是在Ubuntu 16.04 LTS上,使用convert版本的相同命令无法正常工作:ImageMagick 6.8.9-9 Q16 x86_64 2016-06-01.实际上,它从字面上呈现了stdin运算符.
我唯一能找到的在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