PHP Imagick -动画GIF,帧每秒


PHP Imagick - Animated GIF, frames per second

进入代码

$GIF = new Imagick();
$GIF->setFormat("gif");
for ($i = 0; $i < count($file_name); ++$i) {
     $frame = new Imagick();
     $frame->readImage($file_tmp[$i]);
     $frame->setImageDelay(10);
     $GIF->addImage($frame);
}
header("Content-Type: image/gif");
echo $GIF->getImagesBlob();

我有这个部分来设置我想要的

 $frame->setImageDelay(10);

代替10,24帧每秒的正确等量是多少?

[1秒/秒]>>> (1000/24)= 42 ?

谢谢!

找到了:

// Ticks per second
   $tps = 100;
// Frames per second
   $fps = 24
   $frame->setImageDelay(ceil($tps/$fps));

从php文档中:

以"刻度"表示的图像应有的时间量显示。对于gif动画,每秒有100个节拍,所以a20的值是20/100秒,也就是1/5秒。

因此,24 fps,其中秒的值为100,将是100/24或4.1。该值必须是整数,因此四舍五入将是4。更自然的做法是将延迟值设置为5帧/秒,或将延迟值设置为4帧/秒。