进入代码
$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帧/秒。