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
関連記事
-
-
imgタグのsrc属性のURLにPHPでタイムスタンプを付与しキャッシュ対策する方法
imgタグで画像を表示する際、画像を書き換えても同じものが表示されるというケース ...
-
-
PHPでスマホ(iPhone / Android)に画像をダウンロードさせる方法とダウンロード後の保存場所について
PHPで作ったシステムにスマホ(iPhone / Android)でアクセスし何 ...
-
-
PHPでjpg / png画像をWebP画像に変換し保存する方法
PHPでjpg / png画像を圧縮したかった。ただjpg / pngのままだと ...
-
-
PHPにて指定した画像に対して、繰り返し透かし画像処理する方法
画像素材等のサイトで無料版の画像に対して「sample」等の透かし画像処理を行っ ...
-
-
PHPからWebAPI(screendot)経由で他サイトのスクリーンショットを取得する方法
PHPで他サイトのスクリーンショットを取得したい。今回はライブラリは無しで実現し ...