I'm integrating an ImageMagick command into a Firebase Function written in Node.js. I already have Ghostscript installed and have a full list of fonts available:
convert -list font
Path: /usr/local/Cellar/imagemagick/7.0.8-10/etc/ImageMagick-7/type-apple.xml
Font: AndaleMono
family: Andale Mono
style: Undefined
stretch: Undefined
weight: 0
glyphs: /Library/Fonts//Andale Mono.ttf
Font: AppleChancery
family: Apple Chancery
style: Undefined
stretch: Undefined
weight: 0
glyphs: /Library/Fonts//Apple Chancery.ttf
Font: AppleMyungjo
family: AppleMyungjo
style: Undefined
stretch: Undefined
weight: 0
glyphs: /Library/Fonts//AppleMyungjo.ttf
Here's my code:
exec(`convert ${tempFilePath} -font /Users/emma/Library/Fonts/Nunito-Regular.ttf -fill white -pointsize 60 -gravity center -draw "text 0,300 'this is a label'" ${tempFilePath}`, {stdio: 'ignore'}, (err, stdout) => {
if (err) {
console.error('Failed to label image.', err);
reject(err);
} else {
resolve(stdout);
}
});
I also tried:
exec(`convert ${tempFilePath} -font Arial -fill white -pointsize 60 -gravity center -draw "text 0,300 'this is a label'" ${tempFilePath}`, {stdio: 'ignore'}, (err, stdout) => {
if (err) {
console.error('Failed to label image.', err);
reject(err);
} else {
resolve(stdout);
}
});
The error I'm getting is:
convert: unable to read font `/Library/Fonts//Andale' @ warning/annotate.c/RenderType/872
As per @fmw42 suggested:
On some tools that make use of Imagemagick, they do not use the system ENV variable.
So I have seen cases such as with PHP Imagick where it cannot locate the Ghostscript.
In those cases the solution was to put the full path to Ghostscript where it uses
gs
in thedelegates.xml
file of Imagemagick for those lines such as PS, EPS that listgs
.See https://imagemagick.org/script/resources.php for
delegates.xml
and its possible locations. Mine is at/usr/local/etc/ImageMagick-6/delegates.xml
So the possible solution is to install gs
tool.
On MacOS: brew install gs
.
Related post: https://imagemagick.org/discourse-server/viewtopic.php?t=34911.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With