GD! Преобразование изображения в формате png в формат JPEG и создание альфа-канала по умолчанию белым, а не черным

Я попробовал что-то вроде этого, но он просто делает фон изображения белым, а не обязательно альфа-изображения. Я хотел просто загрузить все в формате jpg, так что, если бы я мог как-то "сгладить" изображение png с некоторым прозрачным, по умолчанию оно было бы белым, чтобы я мог использовать его вместо jpg. Ценю любую помощь. Благодарю.

$ old = imagecreatefrompng ($ upload);
$ background = imagecolorallocate ($ old, 255,255,255);
imagefill ($ old, 0, 0, $ background);
imagealphablending ($ old, false);
imagesavealpha ($ old, true);

1 ответ

Решение
<?php
$input_file = "test.png";
$output_file = "test.jpg";

$input = imagecreatefrompng($input_file);
list($width, $height) = getimagesize($input_file);
$output = imagecreatetruecolor($width, $height);
$white = imagecolorallocate($output,  255, 255, 255);
imagefilledrectangle($output, 0, 0, $width, $height, $white);
imagecopy($output, $input, 0, 0, 0, 0, $width, $height);
imagejpeg($output, $output_file);
Другие вопросы по тегам