勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

PHPにてSVGファイルをjpg / png画像に変換する方法

  PHP

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

https://www.php.net/manual/ja/imagick.writeimage.php

 - PHP

  関連記事

LightboxをjQuery無しで実装できる「Luminous」の利用方法
LightboxをjQuery無しで実装できる「Luminous」の利用方法

あるサイトのコーディングデータを貰った際、jQueryは使用していないのにLig ...

PHPで画像を比較して類似度を算出する「image-comparator」ライブラリの利用方法
PHPで画像を比較して類似度を算出する「image-comparator」ライブラリの利用方法

PHPで画像の類似度を計測したい。ただ、そのためのロジックが全く分からないためラ ...

スマホでフォームの画像アップロード部分でカメラを起動させる方法
スマホでフォームの画像アップロード部分でカメラを起動させる方法

formの画像アップロード部分で、スマホの場合にカメラで撮影させたい。以下に対応 ...

Python3.9系&Tesseractを用いて画像をOCR処理する方法
Python3.9系&Tesseractを用いて画像をOCR処理する方法

以前にGASとDrive APIを組み合わせて画像をOCR処理する方法をメモした ...

summernoteのデフォルトの画像挿入時にCSSや任意の属性を指定する方法
summernoteのデフォルトの画像挿入時にCSSや任意の属性を指定する方法

summernoteのデフォルトの画像挿入時はBase64形式にエンコードされ、 ...