为什么fontmagick的字体列表为空?

AGa*_*yer 20 fonts imagemagick image-processing

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

这就是我得到的:

shell$ convert -list font
shell$ 
Run Code Online (Sandbox Code Playgroud)

感谢您提供任何建议.

Mar*_*ell 45

我只是设法告诉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 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>
Run Code Online (Sandbox Code Playgroud)

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

type.xml存储的文件夹在系统和版本之间可能有很大差异.我知道找到它的最好方法是运行以下命令来查看ImageMagick的外观:

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

  Searching for configure file: "/usr/local/Cellar/imagemagick/6.9.5-0/share/ImageMagick-6/type.xml"
  Searching for configure file: "/usr/local/Cellar/imagemagick/6.9.5-0/lib/ImageMagick//config-Q16/type.xml"
  Searching for configure file: "/usr/local/Cellar/imagemagick/6.9.5-0/etc/ImageMagick-6/type.xml"
  Searching for configure file: "/usr/local/Cellar/imagemagick/6.9.5-0/share/doc/ImageMagick-6/type.xml"
  Searching for configure file: "/Users/mark/.config/ImageMagick/type.xml"
  Searching for configure file: "/Users/mark/.magick/type.xml"
  Loading type configure file "/usr/local/Cellar/imagemagick/6.9.5-0/etc/ImageMagick-6/type.xml" ...
  Loading type configure file "/usr/local/Cellar/imagemagick/6.9.5-0/etc/ImageMagick-6/type-apple.xml" ...
  Loading type configure file "/usr/local/Cellar/imagemagick/6.9.5-0/etc/ImageMagick-6/type-ghostscript.xml" ...
  Loading type configure file "/Users/mark/.magick/type.xml" ...
Run Code Online (Sandbox Code Playgroud)

所以有很多地方可以插入字体.通常,如果您选择以文件夹开头的文件夹,/etc或者/usr/local字体将可供所有用户和Web服务器中的脚本使用 - 如果您需要.另一方面,如果您只是一个用户,您可能更喜欢将字体配置文件保留在登录目录中,例如$HOME/.magick/type.xml.

  • 效果很好,但我必须设置绝对路径 不工作 &lt;include file="~/.magick/type.xml" /&gt; ### 此行已添加 ### 工作 &lt;include file="/Users/mark/。 magick/type.xml" /&gt; ### 此行在 ImageMagick 7.0.9-5 中添加了 ### (4认同)
  • 谢谢!我在`〜/ .config/ImageMagick`中创建了`type.xml`,它被自动检测到了! (3认同)
  • 太棒了,谢谢 - 这个地方只有明确的说明. (2认同)
  • 我用自制软件安装了我的 image magick magic,它有所有的系统字体。但是,`convert -list fonts` 显示它只在 /etc/Image-Magick.../type-apple.xml 中查找,而不是在 type.xml(我们将创建的文件添加到 typemap 的地方)中查找。我必须手动将新的 type.xml 复制并粘贴到 type-apple.xml 中才能使其工作。超级臭。 (2认同)

mto*_*nig 8

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

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