php imagegif 动画,使用PHP的ImageMagick API制作动画GIF
虽然我不是PHP专家,但我知道这个问题并不太难.你想要做的是创建一个可以附加帧的Imagick对象.对于每个帧,您可以更改定时等参数.
假设您正在使用从基本Web表单上传的图像,我编写了一个基本示例,循环使用名称“image0”上传的图像,其中“0”上升到包含许多文件.您当然可以通过在固定文件名或其他方面使用相同的方法来添加图像.
$GIF = new Imagick();
$GIF->setFormat("gif");
for ($i = 0; $i < sizeof($_FILES); ++$i) {
$frame = new Imagick();
$frame->readImage($_FILES["image$i"]["tmp_name"]);
$frame->setImageDelay(10);
$GIF->addImage($frame);
}
header("Content-Type: image/gif");
echo $GIF->getImagesBlob();
这个例子创建了一个Imagick对象,它将成为我们的GIF.然后循环上传到服务器的文件并首先读取每个文件(但请记住,这种技术依赖于图像按上述方式命名),其次是获取延迟值,第三,它附加到即将到来的GIF.这是基本的想法,它会产生你想要的东西(我希望).
但是有很多篡改,你的配置可能看起来不同.我总是发现php.net Imagick API的参考类型很糟糕,但它仍然很好,并且我时不时地使用它来引用标准ImageMagick中的东西.
希望这有点与你追求的相符.
虽然我不是PHP专家,但我知道这个问题并不太难.你想要做的是创建一个可以附加帧的Imagick对象.对于每个帧,您可以更改定时等参数. 假设您正在使用从基本Web表单上传的图像,我编写了一个基本示例,循环使用名称“image0”上传的图像,其中“0”上升到包含许多文件.您当然可以通过在固定文件名或其他方面使用相同的方法来添加图像. $GIF = new Imagick(); $GIF->setFormat("gif"); for ($i = 0; $i < sizeof($_FILES); ++$i) { $frame = new Imagick(); $frame->readImage($_FILES["image$i"]["tmp_name"]); $frame->setImageDelay(10); $GIF->addImage($frame); } header("Content-Type: image/gif"); echo $GIF->getImagesBlob(); 这个例子创建了一个Imagick对象,它将成为我们的GIF.然后循环上传到服务器的文件并首先读取每个文件(但请记住,这种技术依赖于图像按上述方式命名),其次是获取延迟值,第三,它附加到即将到来的GIF.这是基本的想法,它会产生你想要的东西(我希望). 但是有很多篡改,你的配置可能看起来不同.我总是发现php.net Imagick API的参考类型很糟糕,但它仍然很好,并且我时不时地使用它来引用标准ImageMagick中的东西. 希望这有点与你追求的相符.