项目中图片越来越大,磁盘花费越来越高,就开始考虑转而使用webp格式进行存储。收集了一些关于webp的信息于此。
1. 通常来说对于jpeg,使用webp格式,文件能小30%,而对于带alpha通道的png来说,能小60%.
2. webp的宽高均使用14bit进行存储,所以限制了webp图片最大尺寸为16383×16383,当然最小是1x1。
3. webp在android 4.0就支持,但不支持透明度,支持透明度的webp是在android 4.2开始的。
4. 相对于jpeg,webp的编码要慢10x,而解码要慢1.4x。
5. php5中使用imagick.so默认是不支持webp的,需要手动编译安装,下载ImageMagick.tar.gz,使用--with-webp=yes进行编译,当前需要安装libpng12-dev liblzma-dev libzlcore-dev libwebp-dev之类的依赖。再下载imagick.tgz,将ImageMagick编译成php模块,命令如下:
phpize
./configure --with-php-config=/usr/bin/php-config --with-imagick=../output/ && make && make install
测试php是否支持webp,有如下简单代码:
$image = new Imagick('./demo.webp');
$image->writeImage('./demo.png');