我目前的尝试:

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);


结果(仅是屏幕截图):c&#43;&#43; - 任何使用giflossy库的示例在c/c&#43;&#43;中创建gif文件-LMLPHP只需在顶部显示一些错误颜色。
https://github.com/pornel/giflossy中没有简单的示例。

最佳答案

即使没有简单的示例,您提供的github链接也确实包含了使此工作所需的所有example code

我将从改变开始

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


至:

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

07-24 09:46