将图像格式PNG转换为JPEG而不保存到磁盘 - PHP


  • 我正在从网址中获取PNG图像,如下所示。
  • 我想将PNG图像转换为JPEG,而无需使用PHP保存磁盘。
  • 最后,我想将JPEG图像分配给$content_jpg变量。

     $url = 'http://www.example.com/image.png';
     $content_png = file_get_contents($url);
     $content_jpg=;
    

简化的答案是,

// PNG image url
$url = 'http://www.example.com/image.png';
// Create image from web image url
$image = imagecreatefrompng($url);
// Start output buffer
ob_start(); 
// Convert image
imagejpeg($image, NULL,100);
imagedestroy($image);
// Assign JPEG image content from output buffer
$content_jpg = ob_get_clean();

你想使用 gd 库来实现这一点。这是一个示例,它将获取 png 图像并输出 jpeg 图像。如果图像是透明的,则透明度将呈现为白色。

<?php
$file = "myimage.png";
$image = imagecreatefrompng($file);
$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);
header('Content-Type: image/jpeg');
$quality = 50;
imagejpeg($bg);
imagedestroy($bg);
?>

最新更新