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にて「ImageHash」ライブラリを使用し画像の類似度を算出する方法
以前にPHPの「image-comparator」ライブラリで画像の類似度を算出 ...
-
-
PHPで画像を上下反転させ保存する
やりたかった事は、下記の通り。 ・既にフォルダに保存されている画像を上下反転させ ...
-
-
PHPでjpg / png画像をAVIF形式の画像に変換する方法
PHPでjpg / png画像をAVIF形式の画像に変換しサーバに保存したい。W ...
-
-
jQuery.uploadでリアルタイムプレビュー
やりたい事は、 ・<input type="file">で画像を選択 ...
-
-
PHPでjpg / png画像をWebP画像に変換し保存する方法
PHPでjpg / png画像を圧縮したかった。ただjpg / pngのままだと ...