Я пытаюсь преобразовать частично прозрачный png в jpg в php с gdlib. Я нашел два фрагмента, чтобы помочь мне в этом, но оба метода имеют одинаковую проблему: полупрозрачные цвета темнее и не выглядят правильно. Вот увеличенный образец из фотошопа: покинул PNG (с белым в фоновом режиме, а не прозрачный), право преобразованного PNG в JPG с обоих фрагментами, которые я использовал:ошибка цвета при преобразовании прозрачного png в jpg в php с glib
difference png (left) to jpg (right)
Здесь оригинальный Png-файл: golf.png
Любая помощь была бы действительно оценена!
$input_file = "card/golf.png";
$output_file1 = "card/golf1.jpg";
$output_file2 = "card/golf2.jpg";
$image = imagecreatefrompng($input_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));
imagejpeg($bg, $output_file1, 100);
imagedestroy($bg);
imagedestroy($image);
list($width, $height) = getimagesize($input_file);
$image = imagecreatefrompng($input_file);
$output = imagecreatetruecolor($width, $height);
$white = imagecolorallocate($output, 255, 255, 255);
imagefilledrectangle($output, 0, 0, $width, $height, $white);
imagecopy($output, $image, 0, 0, 0, 0, $width, $height);
imagejpeg($output, $output_file2, 100);
imagedestroy($output);
Большое спасибо за ваш ответ. Вопрос: Как я могу влиять на таблицу квантования в php? Никогда не слышал о них, но я готов сделать все, чтобы решить эту проблему ... – Martin
Есть ли какая-то «качественная» настройка? – user3344003
Да, если вы посмотрите во второй строке (imagejpeg), последний параметр равен 100, что означает наилучшее качество. – Martin