PHP无损压缩JPG/PNG到WEBP的方法试验

<?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方式转换。

已经放弃,速度实在太慢了,无法接受!

1