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で画像を分割し並べ替えて出力したものをJavaScriptで復元する方法
ある電子書籍サイトをブラウザの開発者ツールで見てみたところ、PHPでページ画像を ...
-
-
PHPで縦横どちらかが指定の長さを超えた場合、比率を保ったままリサイズ
PHPで縦横どちらかが指定の長さを超えた場合、 比率を保ったままリサイズしたかっ ...
-
-
PHPで画像のフォーマット(拡張子)の変換
画像のアップロードでjpg/png/gif形式を受け付けつつ、 最終的にjpgで ...
-
-
imgタグのsrc属性のURLにPHPでタイムスタンプを付与しキャッシュ対策する方法
imgタグで画像を表示する際、画像を書き換えても同じものが表示されるというケース ...
-
-
PHPで画像にモザイクをかけて保存
やりたかった事はPHPで ・モザイク処理 ・元の画像とは別にファイル名をつけて保 ...