php 用imagick实现gif转webp格式[不完美]

正文开始

[md] 代码:

//转webp格式
$img = new Imagick($thumbTmpImageName);
$img->setImageFormat("webp");
$img->writeImages($thumbTmpImageName, true);

服务器安装Imagick扩展,此代码支持所有格式转换到webp。

扩展安装:

imagick 支持 gif 转换webp格式

安装 libwebp

wget http://downloads.webmproject.org/releases/webp/libwebp-1.1.0.tar.gz

tar -xzvf libwebp-1.1.0.tar.gz

./configure --prefix=/usr

        --enable-libwebpmux     
        --enable-libwebpdemux   
        --enable-libwebpdecoder 
        --enable-libwebpextras  
        --enable-swap-16bit-csp 
        --disable-static       

make

make install

需要先安装giflib 支持 gif2

wget https://sourceforge.net/projects/giflib/files/giflib-5.2.1.tar.gz

tar -xzvf giflib-5.2.1.tar.gz

make PREFIX=/usr install &&

find doc ( -name Makefile* -o -name .1 -o -name *.xml ) -exec rm -v {} ; && install -v -dm755 /usr/share/doc/giflib-5.2.1 && cp -v -R doc/ /usr/share/doc/giflib-5.2.1

安装完成需要修改 pkg-config 环境变量以便让 imagick 检测到

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/src/libwebp-1.1.0/src && export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/src/libwebp-1.1.0/src/mux && export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/src/libwebp-1.1.0/src/demux

然后开始安装 imacick

wgetr https://imagemagick.org/download/ImageMagick.tar.gz

tar xvzf ImageMagick.tar.gz

cd cd ImageMagick-7.0.10

./configure

make && make install

checking libwebpmux .... yes 则说明拓展已支持 webp

先用 whereis libopencc.so.3 查找

之后 cat /etc/ld.so.conf

发现没有/usr/lib 在最后一行添加即可 最后

ldconfig

** 方案总结 ** 某些gif图片用此方法转换后会变花屏/黑白

推荐使用 php gif2webp [https://www.li6.cc/article/read/225](https://www.li6.cc/article/read/225 "https://www.li6.cc/article/read/225")

正文结束

PHP接口(interface)和抽象类(abstract) php转webp 还是用谷歌的gif2webp比较完美