当我在 PHP 中将 Gif 转换为 webp 时动画不起作用

Animated not working when i convert Gif to webp in PHP

我将gif动画转成webp,但是webp图片不是动画。

我错过了一步吗? 我在文档中找不到。

我的代码:

//GD
$image = imagecreatefromgif("./mypics.gif");
imagepalettetotruecolor($image);
imagewebp($image, "./image.webp");

//Imagick
$img = new \Imagick("./mypics.gif");
$img->stripImage();
$img->setImageFormat("webp");
$img->setImageAlphaChannel(\imagick::ALPHACHANNEL_ACTIVATE);
$img->setBackgroundColor(new \ImagickPixel('transparent'));
$img->writeImage("./image.webp");

GD 不支持动画 WebP。 Imagemagick 可以,但仅从相对较新的版本 7.0.8-68 开始,并且如果使用 libwebp 编译。

您需要安装支持 webp 的最新 imagemagick,或者使用其他外部工具,例如 gif2webp

php-vips 支持动画网页。例如:

// n=-1 means load all pages
// sequential access means decode pixels on demand
$image = Vips\Image::newFromFile('something.gif', [
    'n' => -1,
    'access' => 'sequential'
]); 
$image->writeToFile('something.webp');