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

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

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

1 Ответ

56 голосов
/ 03 апреля 2010
<?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);
...