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方式转换。
已经放弃,速度实在太慢了,无法接受!