rui live note

WordPress、PHP、子育て、ブログ、将棋、コワーキング、子育て、群馬等に関する日々感じたことを書いているブログです

*

PHP+ImagickでSVGを画像変換する手順まとめ

      2014/10/15   PHP, 開発 , , ,

  • このエントリーをはてなブックマークに追加
  • Pocket

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

実行環境はCentOS 6.2です。

手順

peclインストール

# yum -y install php-pecl

ImageMagick、iMagickインストール

# yum -y install ImageMagick ImageMagick-devel
# pecl install imagick
# echo "extension=imagick.so" > /etc/php.d/imagick.ini

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

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

# vi /usr/lib64/ImageMagick-6.5.4/config/type.xml
<include file="type-truetype.xml"/>  行を追加

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

sample.svg作成

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

sample.php作成

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

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

svg

ad

この記事が気に入ったらシェアしてもらえると嬉しいです!

  • このエントリーをはてなブックマークに追加
  • Pocket
  • follow us in feedly
  • RSS

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

  関連記事

棋士出身地マップ
棋士データベースで遊ぶ(5)〜棋士出身地マップに女流棋士を追加〜

※この記事は「将棋 Advent Calendar 2016 – A …

高校野球応援まとめサイト
高校野球応援動画まとめサイト「OUEN」という新サイトを作りました

先日、こんな高校野球応援動画まとめサイトを作りました。 高校野球応援動画まとめサ …

Prime Timeline
WordPressのコア動作を解析できるプラグイン「Prime Timeline」を使ってみた

先日読んだ「詳解 WordPress」の中でも紹介されていたプラグイン「Prim …

トンネリング
MacでSSHトンネル作ってサーバにFileZillaでファイル転送する方法

以前、Windows で開発していた頃はよくやっていたのですが、何気に Mac …

ネットショップ
EC-CUBEでサーバー移行するときの作業手順まとめ

サイト公開までは開発用ドメインで EC-CUBE を作成しておき、完成したらごっ …

tumblr_ndyvukSjNl1tubinno1_1280
Contact Form 7 で大きいサイズの添付ファイルが送れない時の確認ポイント

WordPress の Contact Form 7 プラグインには添付ファイル …

Thank you
1月28日はWordPressの「プラグイン開発者に感謝する日」

WordPress 公式ブログによると1月28日は「プラグイン開発者に感謝する日 …

Git
はじめてのgit。githubからブランチのソースをcheckoutするコマンド手順

最近CakePHPを触り始めていて、導入必須プラグインと名高いdebug_kit …

VNC
Ubuntu 12.04 にVNCでリモート接続するための設定手順

Ubuntu 12.04 LTS に Windows からリモート接続できるよう …

棋士出身地マップ
棋士データベースで遊ぶ(4)〜OpenStreetMapで棋士出身地マップを作る〜

※この記事は「将棋 Advent Calendar 2016 – A …