【问题标题】:How to use ImageMagick with Chinese fonts on Text to Image Handling如何在文本到图像处理上使用带有中文字体的 ImageMagick
【发布时间】:2018-05-26 07:15:17
【问题描述】:

我尝试使用 ImageMagick 将中文字符处理为我 MacBook 上的图像。

我使用命令检查系统上可用的中文字体。

convert -list font | grep Font

我没有得到任何东西。

从ImageMagick指南Text to Image Handling看,中文字体好像支持,比如ZenKaiUni

从我的 MacBook 的应用程序字体相册中可以看到。中文字体太多了。

我觉得还可以。怎么弄出来的?

【问题讨论】:

  • 要从convert -list font 获取任何内容,您必须编辑您的type.xml 文件以包含您想要的字体或使用imagemagick.org/Usage/scripts/imagick_type_gen 的perl 脚本自动将字体从您的字体目录加载到type.xml 文件。

标签: macos fonts imagemagick-convert


【解决方案1】:

您可以告诉 ImageMagick 您系统上的所有字体,例如 this,然后如果您这样做,它们就会显示出来:

convert -list font

那么你可以使用速记:

convert -font Arial ...

或者,您可以在每次调用的基础上告诉 ImageMagick 任何字体的完整路径:

printf "Hello" | convert -pointsize 72 \
   -font "/Applications/iMovie.app/Contents/Frameworks/Flexo.framework/Versions/A/Resources/Fonts/Zingende Regular.ttf" \
   label:@- result.png

你可能会用 Unicode 代替我的 "Hello"

【讨论】:

【解决方案2】:

我的系统上没有任何中文字体,但这里有一个我建议使用符号字体的示例。首先下载合适的 UTF-8 中文字体,即支持 UTF-8 字符的字体。然后打开兼容 UTF-8 的文本编辑器,选择该字体并输入您的字符串。例如,这是我在 Mac 上使用 BBEdit UTF-8 兼容文本编辑器中的符号字体创建的 symbols.txt 文件的屏幕截图。


然后使用 ImageMagick,

convert -size 100x -font "/library/fonts/GreekMathSymbols Normal.ttf" label:@symbols.txt symbol.gif


生成的 symbol.gif 图像是:


将 .utf8 作为后缀添加到您的文件是不够的。您必须使用 UTF-8 兼容字体在 UTF-8 兼容文本编辑器中创建文本文件。

此外,大多数终端窗口不支持 UTF-8 字符/字体。因此,直接在终端窗口的命令行中输入字符并不总是有效。见http://www.imagemagick.org/Usage/text/#unicode

【讨论】:

  • 你可能没有任何中文字体(尽管 macOS 至少标配了一种),但你肯定会有很多支持中文字符集的字体。
【解决方案3】:

您不能在ImagMagick 中将其作为the font information it uses doesn't include language support 进行,但使用Font Book.app 很容易,只需创建一个智能收藏夹,如下所示:

在我的 Mac 上,我有 35 种字体,其中包括中文字符。

(暗色/灰色字体可用,但需要先从 Apple 服务器下载才能使用它们,这是在任何应用程序中选择这些字体时自动完成的过程。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-11
    相关资源
    最近更新 更多