php实现图片转webp格式

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
php实现图片转webp格式

查看是否支持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
php实现图片转webp格式

在文件最后面添加上 extension = "imagick.so" 就可以

查看扩展是否安装成功。

php --ri imagick | grep -i webp

有返回信息就说明扩展安装成功并且支持webp格式

php实现图片转webp格式

测试

安装成功后写一段代码测试转换效果。

<?php
$img = new Imagick('./1.png');
$img->setImageFormat('webp');
$img->writeImage('./1.webp');
?>
php实现图片转webp格式

执行后可以看到转换成功了,webp格式的体积比png格式的要小了不止一半。

原创文章,作者:小哆啦,如若转载,请注明出处:https://www.notevm.com/a/5337.html

(0)
小哆啦的头像小哆啦
上一篇 2022年5月20日 16:56
下一篇 2022年5月22日 17:03

相关推荐

发表回复

登录后才能评论