【问题标题】:PHP ImageMagick change color in every frame Animated GifPHP ImageMagick 在每一帧动画 Gif 中改变颜色
【发布时间】:2019-07-25 02:21:37
【问题描述】:

我正在尝试将动画 GIF 中的 RGB 值更改为另一个 RGB 值。然而,在我所有的尝试中,它只是改变一帧而不是所有帧的颜色。

$imgif = new Imagick(HOME_PATH.'/images/6.gif');
$target = 'rgba(238,131,41, 1.0)';
$fill = 'rgba(163,145,144, 1.0)';
$fuzz = 0.05 * $imgif->getQuantumRange()['quantumRangeLong'];
$imgif->opaquePaintImage($target, $fill, $fuzz, false, Imagick::CHANNEL_DEFAULT);

$imgifblob = $imgif->getImagesBlob();

是否可以为整个 GIF 索引颜色并进行更改?我很迷茫,因为我没有太多图像处理经验。

【问题讨论】:

    标签: php imagemagick animated-gif


    【解决方案1】:

    抱歉,我不太了解 Imagick。但这里是如何在 Imagemagick 命令行中执行此操作。您可能必须在 Imagick 中循环遍历每一帧,因为它可能不允许处理多帧图像。但也许使用 readImages 会起作用。请参阅https://www.php.net/manual/en/imagick.readimages.php,您将 gif 中的所有帧指定为 6.gif[0--1],即从第 0 帧到最后一帧 -1 的所有帧。对不起,我只是不知道。 Imagick 专家可能会提供更多帮助。

    输入:

    convert bunny_anim.gif -coalesce -fuzz 10% -fill red -opaque "rgb(51,77,204)" -layers optimize new_bunny.gif
    


    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-26
      • 2021-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-28
      相关资源
      最近更新 更多