当我尝试使用PHP imagemagick将此svg转换为png时,它只会以默认字体呈现文本。
有什么方法可以在转换为png时使用相同的Google字体来呈现文字吗?
任何帮助都会受到极大的欢迎。提前谢谢。
带有Sickness字体的SVG文件没问题,但是当使用imagemagick渲染失败时。 我的svg代码是:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type='text/css' href='svg-stylesheet.css' ?>
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" width="250" height="100" version="1.1"><text xml:space="preserve" style="font-size:30px;text-shadow: 1px 1px 1px #CCCCCC;-moz-text-shadow:1px 1px 1px #CCCCCC;-webkit-text-shadow:1px 1px 1px #CCCCCC; fill:#999; font-family:Sickness" x="30" y="70" class="test">
<tspan>Sample TEXT</tspan>
</text>
</svg>
我的PHP代码是:
exec('convert -verbose 4.svg -transparent white -quality 100 -alpha on 4.png');
我的svg文件在这里
svg结果
使用imagemagick 获得png结果
答案 0 :(得分:2)
对于配置的type.xml之外的自定义字体,您需要更新$MAGICK_FONT_PATH
环境以包含字体所在的路径。或者只是将字体文件复制到您执行的工作目录中。然后,只需定义要使用的Imagemagick的-font
(如果没有自动拾取)。
// Example with environment path
exec('MAGICK_FONT_PATH=/path/to/sickness convert -font Sickness 4.svg -transparent white -quality 100 -alpha on 4.png');
// Example with ttf in same directory
exec('convert -font Sickness.ttf 4.svg -transparent white -quality 100 -alpha on 4.png');
其他提示&amp;提示here