如何用PHP提取动画GIF的帧

Syb*_*bio 9 php extract gif animated-gif frame

我搜索了很长时间如何用PHP从动画GIF中提取帧...不幸的是我刚刚找到了如何获得它们的持续时间......

我真的需要提取GIF帧及其持续时间以在每个帧上应用一些调整大小,旋转等,然后使用编辑的帧重新生成GIF!

我不想使用任何软件,外部库(如ImageMagick),只需PHP:实际上我需要允许我的课程http://phpimageworkshop.com/使用动画GIF.

如果你有任何想法,我正在听你^^!

Syb*_*bio 22

我花了一天时间创建一个基于这个的类来实现我想要的只使用PHP!

你可以在这里找到它:https://github.com/Sybio/GifFrameExtractor

谢谢你的回答!


Chr*_*nry 5

好吧,我真的不建议这样做,但这是一个选择。动画gif实际上只是由分隔符“ \ x00 \ x21 \ xF9 \ x04”串联在一起的许多gif。知道这一点,您只需将图像作为字符串拖入PHP,运行爆炸,然后遍历数组即可运行转换。该代码可能看起来像这样。

$image_string = file_get_contents($image_path);

$images = explode("\x00\x21\xF9\x04", $image_string);

foreach( $images as $image ) {
  // apply transformation
}

$new_gif = implode("\x00\x21\xF9\x04", $images);
Run Code Online (Sandbox Code Playgroud)

我不确定图像重新连接的具体细节,但我不是100%肯定的,但这是有关动画GIF的文件格式Wikipedia页面