Преобразование формата изображения PNG в JPEG без сохранения на диск – PHP

  • Я беру PNG-изображение с URL-адреса, как показано ниже.
  • Я хочу преобразовать изображение PNG в JPEG без сохранения диска с PHP.
  • Наконец, я хочу присвоить JPEG-образ переменной $ content_jpg.

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

Для этого вы хотите использовать библиотеку 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); ?> 

Упрощенный ответ:

 // 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();