Base64 は、データを転送可能なテキスト形式に変換するために厳密に使用されるエンコード形式です。別の形式が必要な場合は、そのエンコーディング形式にあるものはすべて、さらに変換する必要があります。したがって、PNG を JPEG にしたい場合は、Base64 デコード後に別のツールで JPEG に変換する必要があります。 このスレッドにはいくつかの良い提案があります。スレッドに回答する @Andrew Moore は、このような関数の使用を推奨しています。PHP セットアップの一部として GD ライブラリがインストールされていることを確認してください。
// Quality is a number between 0 (best compression) and 100 (best quality)
function png2jpg($originalFile, $outputFile, $quality) {
$image = imagecreatefrompng($originalFile);
imagejpeg($image, $outputFile, $quality);
imagedestroy($image);
}
コードを例として使用すると、この関数を使用して次のことができます。
png2jpg('myDirectory/filename.png','myDirectory/filename.jpg', 100);
または、その関数の関数を分解して、png2jpg
次のようにコードで使用できます。
list($type, $data) = explode(';', $data);
list(, $data) = explode(',', $data);
$data = base64_decode($data);
file_put_contents('myDirectory/filename.png', $data);
$image = imagecreatefrompng('myDirectory/filename.png');
imagejpeg($image, 'myDirectory/filename.jpg', 100);
imagedestroy($image);