通过阅读有关文本的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.
@L_502_2@
但是在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’将执行.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。