7

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 で webp-image を表示しようとすると、空白が表示されますが、正しいサイズで表示されます。代わりに画像を読み込み、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 でテストしています。

4

3 に答える 3

7

私は同じ問題を抱えていました、私の解決策は次のとおりです。

$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);
于 2015-07-05T20:49:04.710 に答える