使用PHP将PNG转换为JPG并进行压缩?
我有一堆高质量的PNG文件。我想使用PHP将它们转换为JPG,因为它在保持质量的同时文件大小较小。我想在网络上显示JPG文件。
PHP是否有函数/库来做到这一点?质量/压缩效果好吗?
我有一堆高质量的PNG文件。我想使用PHP将它们转换为JPG,因为它在保持质量的同时文件大小较小。我想在网络上显示JPG文件。
PHP是否有函数/库来做到这一点?质量/压缩效果好吗?
执行此操作以将PNG安全地转换为具有白色透明度的JPG。
$image = imagecreatefrompng($filePath);
$bg = imagecreatetruecolor(imagesx($image), imagesy($image));
imagefill($bg, 0, 0, imagecolorallocate($bg, 255, 255, 255));
imagealphablending($bg, TRUE);
imagecopy($bg, $image, 0, 0, 0, 0, imagesx($image), imagesy($image));
imagedestroy($image);
$quality = 50; // 0 = worst / smaller file, 100 = better / bigger file
imagejpeg($bg, $filePath . ".jpg", $quality);
imagedestroy($bg);
小心要转换的内容。JPG 不支持 Alpha 透明度,而 PNG 支持。您将丢失该信息。
要进行转换,您可以使用以下函数:
// 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);
}
此函数使用 GD 库中的 imagecreatefrompng()
和 imagejpeg()
函数。