My understanding from reading the ImageMagick documentation regarding text, is that the @-
notation reads the contents of standard input.
As such, this
No need to build from source. Just replace @- with "`tee`" :
printf "Hello\nWorld" |
convert \
-size 1280x100 \
-background '#0000FF10' \
-density 90 \
-gravity Center \
-fill black \
-font Helvetica \
caption:"`tee`" \
test.png
`tee` will execute first and 'process' stdin before completing the convert command.
I suspect it is down to differences in your policy.xml
file. There were recent warnings about IM security vulnerabilities (detailed here) and I guess the policy.xml
file on one of your servers has been made secure and not the other. The affected line in that file is:
<!-- <policy domain="path" rights="none" pattern="@*" /> -->
Clarifications contributed by question owner:
/etc/ImageMagick-6/policy.xml
Further clarification by Mark:
The location of the policy.xml file is not always /etc/ImageMagick-6
, it is different on different systems - for example on OS X it is under /usr/local/Cellar/imagemagick...
.
The sure way to find the policy.xml
file is to run the following command and realise that ImageMagick expects the policy.xml
file to be in the same directory as the delegates.xml
and coder.xml
:
convert -debug configure logo: null: 2>&1 | grep -Ei "Searching|Loading"