PHP+ImagickでSVGを画像変換してみるまでの流れをまとめておきます。

実行環境はCentOS 6.2です。

手順

peclインストール

<br />
# yum -y install php-pecl<br />

ImageMagick、iMagickインストール

<br />
# yum -y install ImageMagick ImageMagick-devel<br />
# pecl install imagick<br />
# echo &quot;extension=imagick.so&quot; &gt; /etc/php.d/imagick.ini<br />

日本語フォントにTakaoゴシックを使う。
Takao Fonts https://launchpad.net/takao-fonts
上記URLからダウンロードしたフォントを、/usr/share/fonts/takao-gothic/TakaoGothic.ttf に配置。

ImageMagickでフォントマッピング設定

<br />
# vi /usr/lib64/ImageMagick-6.5.4/config/type.xml<br />
&lt;include file=&quot;type-truetype.xml&quot;/&gt;  行を追加</p>
<p># vi /usr/lib64/ImageMagick-6.5.4/config/type-truetype.xml<br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br />
&lt;!DOCTYPE typemap [<br />
&lt;!ELEMENT typemap (type)+&gt;<br />
&lt;!ELEMENT type (#PCDATA)&gt;<br />
&lt;!ELEMENT include (#PCDATA)&gt;<br />
&lt;!ATTLIST type name CDATA #REQUIRED&gt;<br />
&lt;!ATTLIST type fullname CDATA #IMPLIED&gt;<br />
&lt;!ATTLIST type family CDATA #IMPLIED&gt;<br />
&lt;!ATTLIST type foundry CDATA #IMPLIED&gt;<br />
&lt;!ATTLIST type weight CDATA #IMPLIED&gt;<br />
&lt;!ATTLIST type style CDATA #IMPLIED&gt;<br />
&lt;!ATTLIST type stretch CDATA #IMPLIED&gt;<br />
&lt;!ATTLIST type format CDATA #IMPLIED&gt;<br />
&lt;!ATTLIST type metrics CDATA #IMPLIED&gt;<br />
&lt;!ATTLIST type glyphs CDATA #REQUIRED&gt;<br />
&lt;!ATTLIST type version CDATA #IMPLIED&gt;<br />
&lt;!ATTLIST include file CDATA #REQUIRED&gt;<br />
]&gt;<br />
&lt;typemap&gt;<br />
  &lt;type name=&quot;TakaoGothic&quot; fullname=&quot;TakaoGothic&quot; family=&quot;TakaoGothic&quot; weight=&quot;400&quot; style=&quot;normal&quot; stretch=&quot;normal&quot; glyphs=&quot;/usr/share/fonts/takao-gothic/TakaoGothic.ttf&quot;/&gt;<br />
&lt;/typemap&gt;<br />

sample.svg作成

<br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br />
&lt;svg width=&quot;200&quot; height=&quot;200&quot;&gt;<br />
  &lt;text x=&quot;0&quot; y=&quot;20&quot; font-size=&quot;24&quot; font-family=&quot;TakaoGothic&quot;&gt;Takaoゴシックです&lt;/text&gt;<br />
  &lt;rect x=&quot;10&quot; y=&quot;40&quot; height=&quot;30&quot; width=&quot;30&quot; stroke-width=&quot;5&quot; stroke=&quot;#000000&quot; fill=&quot;#0000ff&quot;/&gt;<br />
  &lt;ellipse cx=&quot;25&quot; cy=&quot;100&quot; ry=&quot;15&quot; rx=&quot;15&quot; stroke-width=&quot;5&quot; stroke=&quot;#000000&quot; fill=&quot;#ff0000&quot;/&gt;<br />
&lt;/svg&gt;<br />

sample.php作成

<br />
&lt;?php<br />
$im = new Imagick();<br />
$svg = file_get_contents(&quot;sample.svg&quot;);<br />
$im-&gt;readImageBlob($svg);<br />
$im-&gt;setImageFormat(&quot;png24&quot;);<br />
header(&quot;Content-Type: image/png&quot;);<br />
echo $im;<br />

というわけで、sample.php を実行するとこんな感じで変換された画像ができ上がりました。

svg