【问题标题】:Animated not working when i convert Gif to webp in PHP当我在 PHP 中将 Gif 转换为 webp 时动画不起作用
【发布时间】:2020-07-25 00:19:21
【问题描述】:

我将动画 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");

【问题讨论】:

    标签: php gd imagick animated-gif webp


    【解决方案1】:

    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');
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我安装了 imagemagick 7.0.10-24 并且 webp 是动画的。目前我正在使用 PHP 中的 exec() 函数执行命令,因为 php-imagick 包使用的版本不支持动画 webp。
      猜你喜欢
      • 2021-06-19
      • 2020-06-27
      • 1970-01-01
      • 2013-09-05
      • 2020-05-15
      • 2021-09-22
      • 2011-03-23
      • 2019-11-24
      • 2017-09-10
      相关资源
      最近更新 更多