在OSX中找不到Imagemagick字体

4
尝试在ImageMagick中向图像添加注释时,出现以下错误信息:
convert: unable to read font `(null)' @ error/annotate.c/RenderFreetype...

我该如何使Imagemagick找到这些字体?

3
已经到了……https://dev59.com/hmAf5IYBdhLWcg3wZB-u#24701602 - Mark Setchell
太酷了!不知道我怎么没发现它。 - Adam Matan
3个回答

9

对我有效的解决方案是由Neville这篇文章中提供的:

  1. 创建一个imagemagick配置文件夹:mkdir ~/.magick
  2. 此Perl脚本保存为/tmp/script.pl
  3. 使脚本可执行:chmod +x /tmp/script.pl
  4. 在本地运行脚本并将输出重定向到~/.magick中的文件type.xml/tmp/script.pl > ~/.magick/type.xml
这解决了字体问题,而安装fonduimagemagick pkg文件和其他一些技巧则没有起到作用。
太好了!现在我可以给一些flickr猫咪加上图像大小和分辨率的注释(我想要这个来找到我正在开发的应用程序的最佳分辨率)。

enter image description here

enter image description here

enter image description here


很不幸,似乎无法获取TTC字体。 - Andrew B.
在OSX 10上,我发现我不仅需要编辑脚本以包括/Library/Fonts,还需要包括/System/Library/Fonts。将第482行的查找更改为find /Library/Fonts /System/Library/Fonts -type f -name '*.*' - srkleiman

5

采用Adam Matan的答案,以下是我在已安装homebrew的macOS 10.12+上使用imagemagick 7+的方法。(这也假设您已经安装了perl。)

  1. 下载perl脚本并将其保存到/usr/local/bin/imagick_type_gen

  2. 使脚本可执行:

    • chmod +x /usr/local/bin/imagick_type_gen
  3. 通过运行convert -list font | grep Path查找imagemagick的字体路径。这应该返回imagemagick正在寻找字体的位置。对于我来说,苹果路径是这样的:

    • /usr/local/Cellar/imagemagick/7.0.7-22/etc/ImageMagick-7/type-apple.xml
  4. 运行imagick_type_gen并将输出定向到上述路径:

    • imagick_type_gen > /usr/local/Cellar/imagemagick/7.0.7-22/etc/ImageMagick-7/type-apple.xml
  5. 运行convert -list font | less以查看imagemagick将使用的字体名称,例如,某些字体将标记为GeorgiaB而不是Georgia Bold。(按q退出)

现在,ImageMagick应该能够看到您在系统上安装的字体。


2
这似乎是获取系统安装的字体,但不包括我作为用户安装的许多字体。该脚本似乎也没有采取任何参数来解决这个问题。检查~/Library/Fonts有多难? - John O
这对Homebrew有效; 而被接受的答案则没有。谢谢。 - btjakes
1
@badkya 我安装了Ghostscript(brew install gs),然后它输出了一份字体列表。 - Smek
1
@Smek 我用 brew install gs 安装成功了,你应该把它作为答案发布 ;) - Jaroslaw Pawlak
2
自从Catalina版本以后,macOS字体已经移动,因此需要更新脚本以查找/System/Library/Fonts目录 - 在脚本中有两个位置需要更新(在撰写本文时的第478行和第482行)。 - Chris

2
最简单的解决方法是将需要的字体复制到~/文件夹或脚本所在的任何位置,然后给出直接路径:
convert -font "~/MyFont.ttc"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接