Linux 如何在ImageMagick中使用带标题的stdin
通过阅读相关文本,我的理解是,Linux 如何在ImageMagick中使用带标题的stdin,linux,bash,ubuntu,imagemagick,imagemagick-convert,Linux,Bash,Ubuntu,Imagemagick,Imagemagick Convert,通过阅读相关文本,我的理解是,@-符号读取标准输入的内容 因此,这应该是一种相当直接的方式来呈现Hello World printf "Hello\nWorld" | convert \ -size 1280x100 \ -background '#0000FF10' \ -density 90 \ -gravity Center \ -fill black \ -font Helvetica \ caption:@- \ test.png 在OS X 10.
@-
符号读取标准输入的内容
因此,这应该是一种相当直接的方式来呈现Hello World
printf "Hello\nWorld" |
convert \
-size 1280x100 \
-background '#0000FF10' \
-density 90 \
-gravity Center \
-fill black \
-font Helvetica \
caption:@- \
test.png
在OS X 10.11.5 via上,使用convert
Version:ImageMagick 6.9.4-3 Q16 x86_64 2016-05-20可实现此功能
但是,在Ubuntu 16.04 LTS上,使用convert
Version:ImageMagick 6.8.9-9 Q16 x86_64 2016-06-01时,相同的命令不起作用。事实上,它从字面上呈现了stdin操作符
我能在谷歌上找到的唯一一个问题是,可以追溯到2015年10月,ImageMagick 6.9.2-5测试版修补了一个类似的问题
问题:我是否没有正确地逃避它,ImageMagick中是否真的存在问题,或者我的Linux发行版是否正在使用带有该漏洞的ImageMagick的历史版本,我需要这样做
经过多次实验后很久
已解决…?在Ubuntu框上从源代码构建ImageMagick 7.0.2,上述命令按需要运行。有更好的解决方案吗?我怀疑这是由于您的
policy.xml
文件存在差异。最近有关于IM安全漏洞的警告(),我猜您的一台服务器上的policy.xml
文件已被设置为安全的,而不是另一台。该文件中受影响的行是:
<!-- <policy domain="path" rights="none" pattern="@*" /> -->
不需要从源代码构建。只需将@-替换为“`tee`”:
`在完成convert命令之前,tee`将首先执行'process'stdin。上述解决方案对我不起作用。默认情况下,策略行显示为未注释。我是否推荐了上面所示的政策路线没有任何区别。事实上,在我重新编译的工作版本中,该行没有注释。不过,谢谢。对不起,马克,我没能更快地做出响应——我不得不重新创建一个新的环境来试用ImageMagick的原始版本,因为当我通过从源代码重新编译而不是使用包来“解决”问题时,我已经被唯一的工作环境“破坏”了。
convert -debug configure logo: null: 2>&1 | grep -Ei "Searching|Loading"
printf "Hello\nWorld" |
convert \
-size 1280x100 \
-background '#0000FF10' \
-density 90 \
-gravity Center \
-fill black \
-font Helvetica \
caption:"`tee`" \
test.png