追記
↓でもう少し詳し目の記事を描きました。
環境
meyfa/phpの導入
composerで導入します。
composer require meyfa/php-svg
テキストを使用する場合は、gd以外にも
--with-freetype-dir=/usr
拡張設定が必要です。
phpenvの場合は、
(MAC)
$HOME/.phpenv/plugins/php-build/share/php-build/default_configure_options
に先ほどの拡張設定を追記して、
phpenv uninstall [PHPバージョン] phpenv install [PHPバージョン]
としてPHPをインストールしなおすのが簡単で良いかと思います。
利用方法
<?php use SVG\SVG; use SVG\Nodes\Texts\SVGText; use SVG\Nodes\Structures\SVGFont; //SVGオブジェクトの準備 //文字列から生成の他、ファイルから、空の状態からなどあります。 $svg = '<svg xmlns="http://www.w3.org/2000/svg" width="500" height="500" viewBox="0 0 500 500"> <circle cx="150" cy="200" r="100" fill="#06f"></circle> </svg>'; $image = SVG::fromString($svg); //文字を表示する場合 $font = new SVGFont('IPAex明朝', "font/ipaexm.ttf"); $image->getDocument()->addChild($font); $image->getDocument()->addChild( (new SVGText('こんにちは', 50, 50)) ->setFont($font) ->setSize(30) ->setStyle('fill', '#f00') ); //イメージのラスタライズ $rasterImage = $image->toRasterImage(500, 500); // ブラウザ上に表示する場合 echo $image->toXMLString(); // 保存する場合 imagepng($rasterImage, "my-image.png");
使用フォントについて
フォントは下記サイトより、DLさせていただきました。