From 5cb3422ea95c9d417a93abed7d870bed9383093f Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 21 Mar 2012 19:30:31 -0600 Subject: [PATCH] semi-export ability to extract multiple images from gif --- collects/racket/draw/gif.rkt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/collects/racket/draw/gif.rkt b/collects/racket/draw/gif.rkt index 74dfef7cd8..af99aafc23 100644 --- a/collects/racket/draw/gif.rkt +++ b/collects/racket/draw/gif.rkt @@ -1,7 +1,8 @@ #lang racket/base (require "private/lzw.rkt") -(provide gif->rgba-rows) +(provide gif->rgba-rows + gif->all-rgba-rows) (define-syntax-rule (when-debugging expr ...) #;(begin expr ...) @@ -179,6 +180,14 @@ (define (gif->rgba-rows in) (let ([i (read-gif in #t)]) + (image->rgbs-rows i))) + +(define (gif->all-rgba-rows in) + (for/list ([i (in-list (read-gif in #f))]) + (define-values (w h vec) (image->rgbs-rows i)) + (vector w h vec))) + +(define (image->rgbs-rows i) (let* ([data (image-data i)] [len (bytes-length data)] [ct (image-ct i)] @@ -223,4 +232,4 @@ vec2) ;; rows are already in order vec)]) - (values w h vec2)))) + (values w h vec2)))