使用PHP,能否将一个动态GIF与JPG合并,并保留GIF的动画效果?

6
使用PHP(GD或ImageMagick),我想将一个动态gif与一个jpg合并,并保留gif的动画效果,生成一个动态gif文件。
换句话说,我有一个大小为500px x 30px的动态gif图像,需要放在一个大小为500px x 500px的jpg图片上方,最终生成一个单独的动态gif图像。
因此,你知道能否将一个动态gif与一个jpg合并,并保留gif的动画效果吗?

1
这需要动态完成还是只需要一次性完成? - p.wilt
7
这肯定需要你将所有帧从动画中分离出来,然后在每个帧的顶部应用JPG,之后你需要重新构建GIF。 - jValdron
1
你需要做这个的目的是什么?这个需要能够提供什么功能? - Spags
由于您可以逐字节地操作文件,并且GIF和JPEG的文件格式已知,因此是可以实现的。但是,这样做容易吗?不是的。这样做明智吗?不是的,因为GIF文件最多只有256种颜色,所以在JPEG文件中可能会失去颜色深度。此外,GIF图像将变得非常大。 - GolezTrol
1个回答

1

看看 Imagick::animateImages 方法, gomadurai 示例:

<?php

$multiTIFF = new Imagick();

$mytifspath = "./man"; // your image directory

$files = scandir($mytifspath);

//print_r($files);

/*foreach( $files as $f )
{*/

for($i=2;$i<6;$i++)
{
    echo $files[$i];

    echo "<br>";
    $auxIMG = new Imagick();
    $auxIMG->readImage($mytifspath."/".$files[$i]);

    $multiTIFF->addImage($auxIMG);
}

//file multi.TIF
$multiTIFF->writeImages('multi423432.gif', true); // combine all image into one single image

//files multi-0.TIF, multi-1.TIF, ...
$multiTIFF->writeImages('multi.gif', false);

?>

如果您只使用一个gif,可以将其拆分到文件夹中保存,然后使用简单的GD操作(其中一个评论在此处)合并分离的图像,然后使用上面的代码创建新的Gif。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接