У меня возникли проблемы с созданием чистого транскодирования изображений из webp в jpeg с использованием библиотеки PHP GD. Для справки Вот версия оригинала в формате jpeg с использованием демоверсии Google здесь: https://developers.google.com/speed/webp/gallery (я включаю это в jpeg, так как не могу загрузить webp в stackoverflow )
Сначала я попробовал эту базовую c процедуру:
$image = imagecreatefromwebp('4.webp');
imagejpeg($image, 'converted.jpg', 100);
Этот тип работает, но результат имеет желтый фон, подобный этому:
Я также пытался использовать этот бит кода для изменения размера изображений и сначала рисования белого фона:
$image = imagecreatefromwebp('4.webp');
$width = imagesx($image);
$height = imagesy($image);
$new = imagecreatetruecolor($width, $height);
$background = imagecolorallocate($new, 255, 255, 255);
imagefilledrectangle($new, 0, 0, $width, $height, $background);
imagecopyresampled($new, $image, 0, 0, 0, 0, $width, $height, $width, $height);
imagejpeg($new, 'converted.jpg', 100);
Это выглядит еще хуже и приводит к множеству странных артефактов:
Прежде чем я полностью разочаруюсь в GD, кто-нибудь может сделать предложение, чтобы это работало должным образом? Прежде всего, я ищу решение с использованием функций GD. Если это невозможно, я открыт для ImageMagick или другой библиотеки - но я бы хотел немного больше понять, что здесь происходит не так, и можно ли это сделать правильно, не меняя инструменты.