使用 giflossy 库的任何示例在 c/c++ 中创建 gif 文件

Any example to use giflossy library create gif file in c/c++

我目前的尝试:

Gif_Stream* gfs = Gif_NewStream();
gfs->screen_width = 640;
gfs->screen_height = 480;

Gif_Colormap *cm = Gif_NewFullColormap(216, 256);
Gif_Color *col = cm->col;
for (int i = 0; i < 216; i++) {
    col[i].gfc_red = (i / 36) * 0x33;
    col[i].gfc_green = ((i / 6) % 6) * 0x33;
    col[i].gfc_blue = (i % 6) * 0x33;
}
gfs->global = cm;

// load image
...
for (int i = 0; i < n; ++i)
{
    Gif_Image* gfi = Gif_NewImage();

    // set width/height
    gfi->width = imgW;
    gfi->height = imgH;

    Gif_SetUncompressedImage(gfi, pixelPtr, Gif_Free, 0);

    Gif_AddImage(gfs, gfi);
}

FILE* f = fopen("test.gif", "w");
Gif_WriteFile(gfs, f);
fclose(f);

结果(只是一个屏幕截图):只是在顶部得到一些错误颜色。 https://github.com/pornel/giflossy.

中没有简单的例子

即使没有一个简单的示例,您提供的 github link 也确实包含了您应该需要的所有 example code 才能正常工作。

我将从更改

开始
FILE* f = fopen("test.gif", "w");

至:

FILE* f = fopen("test.gif", "wb");