1

我正在Magick++使用ImageMagick. 我不知道如何使用我的字体将渲染 svg 设置为光栅。这是我的 svg

目标是实现类比

convert.exe -font C:\Fonts\RoadSymbols.ttf C:\ua_03.svg C:\1.png

但使用Magick++API。

我试图设置这样的字体:

Magick::Image svgImage("C:\\ua_03.svg");
svgImage.magick("png");
svgImage.font("@C:\\Fonts\\RoadSymbols.ttf");
svgImage.write("C:\\1.png");

但我没有得到所需的结果。

有任何想法吗?

4

1 回答 1

1

首先使用命令行列出 ImageMagick 已知的所有字体:

 convert.exe -list font

你会看到这样的东西:

Path: /opt/local/etc/ImageMagick/type-ghostscript.xml
Font: AvantGarde-Book
  family: AvantGarde
  style: Normal
  stretch: Normal
  weight: 400
  glyphs: /opt/local/share/fonts/urw-fonts/a010013l.pfb
Font: AvantGarde-BookOblique
  family: AvantGarde
  style: Oblique
  stretch: Normal
  weight: 400
  glyphs: /opt/local/share/fonts/urw-fonts/a010033l.pfb
Font: AvantGarde-Demi
  family: AvantGarde
  style: Normal
  stretch: Normal
  weight: 600
  glyphs: /opt/local/share/fonts/urw-fonts/a010015l.pfb
Font: AvantGarde-DemiOblique
  family: AvantGarde
  style: Oblique
  stretch: Normal
  weight: 600
  glyphs: /opt/local/share/fonts/urw-fonts/a010035l.pfb
[...]

然后,在从该列表中为 ImageMagick 细读选择字体时,您可以选择:

  • (a) ...要么使用出现在Font:标签后面的字体名称,

  • (b) ...或使用实际字体文件的完整路径(出现在glyphs:标签后面。

并且不要尝试只使用family:ImageMagick 的名称......

如果它们包含任何空格,请务必在任何字体名称或路径周围使用引号!

于 2012-08-21T14:21:25.610 回答