diff --git a/gifdec.c b/gifdec.c index 83c2d0f..9a97923 100644 --- a/gifdec.c +++ b/gifdec.c @@ -509,6 +509,13 @@ gd_render_frame(gd_GIF *gif, uint8_t *buffer) render_frame_rect(gif, buffer); } +/* Extract the raw frame data (pixels represent palette indexes) */ +void +gd_copy_frame_data(gd_GIF *gif, uint8_t *buffer) +{ + memcpy(buffer, gif->frame, gif->width * gif->height); +} + int gd_is_bgcolor(gd_GIF *gif, uint8_t color[3]) { diff --git a/gifdec.h b/gifdec.h index 2bbc9f5..92dea3b 100644 --- a/gifdec.h +++ b/gifdec.h @@ -45,6 +45,7 @@ typedef struct gd_GIF { gd_GIF *gd_open_gif(const char *fname); int gd_get_frame(gd_GIF *gif); void gd_render_frame(gd_GIF *gif, uint8_t *buffer); +void gd_copy_frame_data(gd_GIF *gif, uint8_t *buffer); int gd_is_bgcolor(gd_GIF *gif, uint8_t color[3]); void gd_rewind(gd_GIF *gif); void gd_close_gif(gd_GIF *gif);