github上找到的gif解码实现:https://github.com/lecram/gifdec
实现依赖文件系统,仅支持89a;C实现,方便移植。
README中详细说明了使用方法,下面是一个简单的示例。
A simplified skeleton of a GIF viewer may look like this:
gd_GIF *gif = gd_open_gif("some_animation.gif");
char *buffer = malloc(gif->width * gif->height * 3);
for (unsigned looped = 1;; looped++) {
while (gd_get_frame(gif)) {
gd_render_frame(gif, buffer);
/* insert code to render buffer to screen
and wait for delay time to pass here */
}
if (looped == gif->loop_count)
break;
gd_rewind(gif);
}
free(buffer);
gd_close_gif(gif);
需要注意的是,格式 R、G、B 各一个Byte,如果是565,需要做转化。
附件为一个简单的gif图像,方便调试用。
离线