<?php
function webp($old,$new){
$i=getimagesize($old);
switch($i['2']){
case 2:$o=imagecreatefromjpeg($old);break;
case 3:$o=imagecreatefrompng($old);break;
default:return false;break;
}
imagewebp($o,$new,100);
if(filesize($new)%2==1){file_put_contents('test_img.webp',"\0",FILE_APPEND);}
imagedestroy($o);
return true;
webp('0.jpg','0.webp');
这个我无损压缩一张20MB的图片到WEBP格式,体积缩小到11MB。
不过只在我自己Windows电脑上试验成功了,Linux服务器报错:
[21-Dec-2018 03:43:46 UTC] PHP Warning: imagewebp(): gd-webp encoding failed in /www/test.php on line 9
排除内存不足问题,服务器性能远高于本人电脑。后续将试验Imagick方式转换。
已经放弃,速度实在太慢了,无法接受!