PHP Imagick - 动画GIF,每秒帧数

时间:2015-08-25 14:14:39

标签: php imagick animated-gif

进入此代码

$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秒/ fps]&gt;&gt;&gt; (1000/24)= 42?

谢谢!

2 个答案:

答案 0 :(得分:1)

找到它:

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

答案 1 :(得分:0)

来自nrows

  

以&#39; ticks&#39;表示的时间量。图像应该是   显示为。对于动画GIF,每秒有100个刻度,所以a   值20将是20/100秒,也就是1/5秒。

因此,24 fps,其中第二个值为100,将是100/24或4.1。该值必须是一个整数,因此向下舍入为4.每秒执行20帧更为自然,这将是5或25帧/秒的延迟值,这将使延迟值为4。