MrLib: Extra GUI Libraries

1`` | Aligned Pasteboard
2`` | Bitmap Label
3`` | Cache-image Snip
4`` | GIF and Animated GFI Writing
5`` | Graphs
6`` | Hierarchical List Control
7`` | Include Bitmap
8`` | Interactive Value Port
9`` | Name Message
10`` | Path Dialog
11`` | Plot
12`` | Switchable Button
13`` | Acknowledgments
| Index

On this page:

write-gif
write-animated-gif

Version: 4.0.2
contents index
← prev up next →

### 4`` GIF and Animated GFI Writing

(require mrlib/gif)

(write-gif bitmap filename) → void?

bitmap

:

(or/c (is-a?/c bitmap%)
(-> (is-a?/c bitmap%)))

filename : path-string

Writes the given bitmap to filename as a GIF image, where bitmap is either an instance of bitmap% or a thunk (to be called just once) that generates such an object. If the bitmap uses more than 256 colors, it is automatically quantized using a simple algorithm; see quantize. If the bitmap has a mask bitmap via get-loaded-mask, it is used to determine transparent pixels in the generated GIF image.

(write-animated-gif |  | bitmaps |  |  |  |
|  | delay-csec |  |  |  |
|  | filename |  |  |  |
| [ | #:one-at-a-time? one-at-a-time?]) |  | → |  | void?

bitmaps

:

(listof (or/c (is-a?/c bitmap%)
(-> (is-a?/c bitmap%))))

delay-csec : (integer-in 0 4294967295)
filename : path-string
one-at-a-time? : any/c = #f

Writes the bitmaps in bitmap-list to filename as an animated GIF. The bitmap-list list can contain a mixture of bitmap% objects and thunks (each called just once) that produce bitmap% objects. The delay-csec argument is the amount of time in 1/100s of a second to wait between transitions.

If one-at-a-time? is #f, then the content of all images is collected and quantized at once, to produce a single colortable; a drawback to this approach is that it uses more memory, and it allows less color variation among animation frames. Even when one-at-a-time? is #f, the result of each thunk in bitmap-list is converted to a byte-string one at a time (which helps avoid bitmap-count limits under Windows).

If one-at-a-time? is true, then the bitmaps are quantized and written to the file one at a time; that is, for each thunk in bitmap-list, its result is written and discarded before another thunk is called. A drawback to this approach is that a separate colortable is written for each frame in the animation, which can make the resulting file large.

contents index
← prev up next →