Конвертируйте jpg в webp используя imagewebp

У меня возникли проблемы с использованием imagewebp для преобразования изображения в webp.

Я использую этот код:

$filename = dirname(__FILE__) .'/example.jpg';

$im = imagecreatefromjpeg($filename);

$webp =imagewebp($im, str_replace('jpg', 'webp', $filename));
imagedestroy($im);

var_dump($webp);

$ webp возвращает true, но когда я пытаюсь просмотреть webp-изображение в Chrome, оно просто отображается пустым, но с правильным размером. Если я вместо этого загружаю изображение и устанавливаю заголовки с помощью PHP (см. Ниже), оно появляется, но с неправильными цветами (слишком много желтого).

$im = imagecreatefromwebp('example.webp');
header('Content-Type: image/webp');
imagewebp($im);
imagedestroy($im);

Если я преобразую то же изображение с помощью командной строки, он будет работать как положено.

cwebp -q 100 example.jpg -o example.webp

Я тестирую это на Ubuntu 14, Apache 2.4.7 и PHP 5.5.9-1ubuntu4.4.

3

Решение

У меня была такая же проблема, мое решение:

$file='hnbrnocz.jpg';
$image=  imagecreatefromjpeg($file);
ob_start();
imagejpeg($image,NULL,100);
$cont=  ob_get_contents();
ob_end_clean();
imagedestroy($image);
$content =  imagecreatefromstring($cont);
imagewebp($content,'images/hnbrnocz.webp');
imagedestroy($content);
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]