【问题标题】:why font list is empty for imagemagick?为什么 imagemagick 的字体列表为空?
【发布时间】:2014-09-02 00:03:36
【问题描述】:

我正在尝试使用 ImageMagick 向图像添加一些文本。但我发现它总是说我指定的字体不存在。仔细阅读手册后发现可以使用convert -list font 输出所有可用字体,但尝试后发现可用字体列表为空。

这是我得到的:

shell$ convert -list font
shell$ 

感谢您的任何提示。

【问题讨论】:

  • 你使用的是哪个 IM 版本?
  • 来自官方网站的最新消息。 ImageMagick-6.8.9
  • @MarkSetchell 谢谢,但我什至无法通过第一行。 sudo updatedb 返回updatedb: command not found
  • 你使用的是什么操作系统?

标签: image-processing fonts imagemagick


【解决方案1】:

我只是设法告诉 ImageMagick 我的 OSX 系统上的字体,如下所示:

# Make a new directory for ImageMagick local settings and cd into it
mkdir ~/.magick
cd ~/.magick

# Grab script to find all fonts on system and store them in a config file
curl -L http://www.imagemagick.org/Usage/scripts/imagick_type_gen > type_gen

# Run script, telling it where my fonts are and create "type.xml" file with list  
find /System/Library/Fonts /Library/Fonts ~/Library/Fonts -name "*.[to]tf" | perl type_gen -f - > type.xml

# Go to ImageMagick config folder - see note at end to find correct folder
cd /usr/local/Cellar/imagemagick/6.8.9-1/etc/ImageMagick-6

# Edit system config file called "type.xml" and add line near end to tell IM to look at local file we made in earlier step
<typemap>
<include file="type-ghostscript.xml" />
<include file="~/.magick/type.xml" />                       ### THIS LINE ADDED ### 
</typemap>

如何为您的type.xml 文件找到正确的文件夹

存储type.xml 的文件夹在系统和版本之间可能会有很大差异。最近的用户配置文件夹似乎是 ~/.config/ImageMagick,但我知道找到它的最好方法是运行以下命令来查看 ImageMagick 的位置:

convert -debug configure -list font 2>&1 | grep -E "Searching|Loading"

Searching for configure file: "/usr/local/Cellar/imagemagick/7.0.11-6/share/ImageMagick-7/type.xml"
Searching for configure file: "/usr/local/Cellar/imagemagick/7.0.11-6/lib/ImageMagick//config-Q16HDRI/type.xml"
Searching for configure file: "/usr/local/Cellar/imagemagick/7.0.11-6/etc/ImageMagick-7/type.xml"
Searching for configure file: "/usr/local/Cellar/imagemagick/7.0.11-6/share/doc/ImageMagick-7/type.xml"
Searching for configure file: "/Users/username/.config/ImageMagick/type.xml"
Loading type configure file "/usr/local/Cellar/imagemagick/7.0.11-6/etc/ImageMagick-7/type.xml" ...
Loading type configure file "/usr/local/Cellar/imagemagick/7.0.11-6/etc/ImageMagick-7/type-ghostscript.xml" ...
Loading type configure file "/Users/username/.config/ImageMagick/type.xml" ...

所以有很多地方可以插入字体。通常,如果您选择以/etc/usr/local 开头的文件夹,则所有用户和您的Web 服务器中的脚本都可以使用这些字体——如果您愿意的话。另一方面,如果您只是一个用户,您可能更愿意将字体配置文件保留在您的登录目录中,例如~/.config/ImageMagick/type.xml.

【讨论】:

  • 谢谢。我被这个# Go to ImageMagick config folder 卡住了。我的硬盘中没有/usr/local/Cellar/
  • 我终于在包文件夹中找到了etc文件夹。但是在运行convert 命令之后,我得到了这个:convert: delegate library support not built-in '/Library/Fonts/Microsoft/Arial.ttf' (Freetype) @ warning/annotate.c/RenderFreetype/1535. 仅供参考,我现在可以在运行convert -list font 后看到东西了
  • 谢谢!我在~/.config/ImageMagick 中创建了我的type.xml,它被自动检测到了!
  • 我用自制软件安装了我的图像魔法魔法,它有所有的系统字体。然而,convert -list fonts 表明它只查看 /etc/Image-Magick.../type-apple.xml 而不是 type.xml(我们将创建的文件添加到类型映射中)。我必须手动将新的 type.xml 复制并粘贴到 type-apple.xml 中才能使其正常工作。超级臭。
  • 效果很好,但我必须设置绝对路径 不工作 ### 这条线已添加 ### 工作 ### 已添加此行 ### 与 ImageMagick 7.0.9-5
【解决方案2】:

使用 MacOs Catalina 上的 ImageMagic 7.0.10,我完成了以下操作。

  • 已编辑 /usr/local/Cellar/imagemagick/7.0.10-7/etc/ImageMagick-7/type.xml 并将 type-ghostscript 替换为 type-apple
  • 编辑 /usr/local/Cellar/imagemagick/7.0.10-7/etc/ImageMagick-7/type-apple.xml 并在所有字形路径前添加“/System/Library/Fonts/Supplemental”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多