webp介绍
WebP是google推出一种图片格式,优点是压缩率高,在质量相同的情况下WebP格式图像的体积要比JPEG格式图像小40%,网站使用webp格式的图片能有效节省服务器的带宽。
php图片转webp格式需要利用ImageMagick,要先安装ImageMagick跟imagick扩展。
ImageMagick介绍
ImageMagick是一个免费的创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。ImageMagick是免费软件:全部源码开放,可以自由使用,复制,修改,发布,它遵守GPL许可协议,可以运行于大多数的操作系统,ImageMagick的大多数功能的使用都来源于命令行工具。
安装ImageMagick
先安装依赖:
yum install -y libjpeg-devel libpng-devel libtiff-devel libgif-devel
安装libwebp:
wget -c https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.2.2.tar.gz tar zxf libwebp-1.2.2.tar.gz cd libwebp-1.2.2 ./configure make && make install
将目录添加到PKG_CONFIG_PATH变量:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
下载安装ImageMagick:
wget -c https://imagemagick.org/archive/ImageMagick-7.1.0-48.tar.gz tar zxvf ImageMagick-7.1.0-48.tar.gz cd ImageMagick-7.1.0-48 ./configure --prefix=/usr/local/imagemagick --disable-openmp --with-webp make && sudo make install sudo ldconfig /usr/local/lib
创建连接:
ln -s /usr/local/imagemagick/bin/convert /usr/local/bin/convert
查看是否安装成功:
convert -version
如果返回类似以下的信息表示安装成功
Version: ImageMagick 6.9.10-68 Q16 x86_64 2021-10-14 https://imagemagick.org
Copyright: © 1999-2019 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP(3.1)
Delegates (built-in): bzlib cairo fontconfig freetype gslib jng jp2 jpeg lcms ltdl lzma openexr pangocairo png ps rsvg tiff wmf x xml zli

查看是否支持webp:
convert -list format | grep -i webp
返回类似这样的信息说明已经支持webp格式
WEBP* rw+ WebP Image Format (libwebp 1.0.0 [020E])
安装imagick扩展
这里注意下面 /usr/local/php/bin/php-config
要对应安装扩展的php版本的路径
wget -c https://pecl.php.net/get/imagick-3.7.0.tgz tar zxf imagick-3.7.0.tgz cd imagick-3.7.0 phpize ./configure --with-php-config=/usr/local/php/bin/php-config --with-imagick=/usr/local/imagemagick make && make install
Debian系的执行./configure
报错:configure: error: not found. Please provide a path to MagickWand-config or Wand-config program.
的话,需要先安装libmagick++-dev
这个包
sudo apt install -y libmagick++-dev
编辑php.ini文件,添加imagick扩展
不清楚php.ini路径的,可以通过以下命令查询:
php --ini
或者
php -i | grep php.ini

在文件最后面添加上 extension = "imagick.so"
就可以
查看扩展是否安装成功。
php --ri imagick | grep -i webp
有返回信息就说明扩展安装成功并且支持webp格式

测试
安装成功后写一段代码测试转换效果。
<?php $img = new Imagick('./1.png'); $img->setImageFormat('webp'); $img->writeImage('./1.webp'); ?>

执行后可以看到转换成功了,webp格式的体积比png格式的要小了不止一半。
原创文章,作者:小哆啦,如若转载,请注明出处:https://www.notevm.com/a/5337.html