[][src]Module gifski::c_api

How to use from C

gifski *g = gifski_new(&(GifskiSettings){});
gifski_set_file_output(g, "file.gif");

for(int i=0; i < frames; i++) {
     int res = gifski_add_frame_rgba(g, i, width, height, buffer, 5);
     if (res != GIFSKI_OK) break;
}
int res = gifski_finish(g);
if (res != GIFSKI_OK) return;

It's safe and efficient to call gifski_add_frame_* in a loop as fast as you can get frames, because it blocks and waits until previous frames are written.

Structs

ARGB8
GifskiHandle

Opaque handle used in methods. Note that the handle pointer is actually Arc<GifskiHandleInternal>, but Arc::into_raw is nice enough to point past the counter.

GifskiHandleInternal
GifskiSettings

Settings for creating a new encoder instance. See gifski_new

Functions

gifski_add_frame_argb

Same as gifski_add_frame_rgba, except it expects components in ARGB order.

gifski_add_frame_png_file

File path must be valid UTF-8. This function is asynchronous.

gifski_add_frame_rgb

Same as gifski_add_frame_rgba, except it expects RGB components (3 bytes per pixel).

gifski_add_frame_rgba

Pixels is an array width×height×4 bytes large. The array is copied, so you can free/reuse it immediately.

gifski_end_adding_frames

Optional. Allows deprecated gifski_write to finish.

gifski_finish

The last step:

gifski_new

Call to start the process

gifski_set_file_output

Start writing to the destination. This has to be called before any frames are added.

gifski_set_progress_callback

Get a callback for frame processed, and abort processing if desired.

gifski_set_write_callback

Start writing via callback (any buffer, file, whatever you want). This has to be called before any frames are added. This call will not block.

gifski_write

Deprecated. Do not use. Use gifski_set_file_output instead.