我无法使用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但是当我尝试在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上进行测试。
答案 0 :(得分:4)
我有同样的问题,我的解决方案是:
$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);
答案 1 :(得分:0)
有效:
$jpg=imagecreatefromjpeg('filename.jpg');
$w=imagesx($jpg);
$h=imagesy($jpg);
$webp=imagecreatetruecolor($w,$h);
imagecopy($webp,$jpg,0,0,0,0,$w,$h);
imagewebp($webp, 'filename.webp', 80);
imagedestroy($jpg);
imagedestroy($webp);