2014-10-11 184 views
3

我無法使用imagewebp將圖像轉換爲webp。使用imagewebp將jpg轉換爲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查看WEBP像它只是顯示爲空白,但正確的大小。如果我用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

嗯..確定。它不能解釋我的問題與白色JPEG - > WebP雖然:(。 – 2014-10-12 19:11:42

+0

我一直在嘗試這一些更多和圖像高達1920x1440似乎工作得很好。較大的圖像加載,顯示了一秒鐘,然後圖片大小正確但我目前的內存限制是128M,但是當我將它設置爲256M時它也沒有幫助 – 2014-11-01 21:13:23

+0

@StefanEdberg:我正在從webp轉換jpg.After轉換後,即使我面對太多的黃色圖片。我怎麼能避免這種情況,請幫助.. – Basher51 2014-11-20 03:12:26

回答

2

我有同樣的問題,我的解決辦法是:

$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); 
+0

感謝您的回覆。當我使用錯誤提交的圖像進行測試時,它不適用於我。 – 2015-07-12 11:32:38