PHPにてSVGファイルをjpg / png画像に変換する方法
PHPにてSVGファイルをjpgもしくはpng形式の画像ファイルに変換したいというケースがあった。調べたところImagickモジュールを使用することで対応できるらしい。以下に対応方法をメモ。
目次
Imagick
インストールされているか確認
phpinfo()で「imagick」の項目があればインストールされている筈。
インストールされていない場合は過去記事を参考の上、インストールすること。
対応方法
jpgの場合
<?php
$image = new Imagick();
$svg = file_get_contents('./test.svg');
$image->readImageBlob($svg);
$image->setImageFormat('jpeg');
if( $image->writeImage('./test.jpg') ){
echo 'success';
}else{
echo 'error';
}
pngの場合
<?php
$image = new Imagick();
$svg = file_get_contents('./test.svg');
$image->readImageBlob($svg);
$image->setImageFormat('png24');
if( $image->writeImage('./test.png') ){
echo 'success';
}else{
echo 'error';
}
リファレンス
readImageBlob
https://www.php.net/manual/ja/imagick.readimageblob.php
setImageFormat
https://www.php.net/manual/ja/imagick.setimageformat.php
writeImage
関連記事
-
-
PHPでスマホ(iPhone / Android)に画像をダウンロードさせる方法とダウンロード後の保存場所について
PHPで作ったシステムにスマホ(iPhone / Android)でアクセスし何 ...
-
-
PHPでダミー画像(プレースホルダー画像)を表示する「PHP-Dummy-Image-Generator」の利用方法
先日JavaScriptでダミー画像(プレースホルダー画像)を表示する「Hold ...
-
-
PHPで画像を分割し並べ替えて出力したものをJavaScriptで復元する方法
ある電子書籍サイトをブラウザの開発者ツールで見てみたところ、PHPでページ画像を ...
-
-
PHPで画像アップロード、リサイズ、形式変換(jpg->webp等)はclass.upload.phpが便利
今までPHPで画像関連の処理を行う場合、リサイズの時のみsmart_resize ...
-
-
フォームからアップロードした画像にPHPでロゴ画像(透かし)を追加する方法
フォームから送られてきた画像に対してサイトロゴみたいなロゴ画像を右下等、指定の位 ...