Base64 是一种严格用于将数据转换为文本可传输格式的编码格式。如果您想要另一种格式,则需要进一步转换该编码格式中的任何内容。因此,如果您希望 PNG 成为 JPEG,则在 Base64 解码后需要通过其他工具将其转换为 JPEG。 这个线程有一些很好的建议。回答线程的@Andrew Moore 建议使用这样的函数。确保将 GD 库作为 PHP 设置的一部分安装:
// 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);