尝试使用 giflib 对 GIF 文件进行编码

Trying to encode a GIF file using giflib

我得到了图像数据和颜色 table 我正在尝试使用 giflib 将其导出为单帧 GIF。我查看了 API,但无法正常工作。该程序甚至在第一个功能处崩溃:

GifFileType image_out;
int errorCode = 0;
char* fileName = "SomeName.gif";
image_out = *EGifOpenFileName(fileName,true, &errorCode); 

据我了解,我首先需要通过指定文件名打开文件,然后使用 fileHandle 更新它。然后填写屏幕描述,扩展名块图像数据并将3B结尾添加到文件中。然后使用 EGifSpew 导出整个 gif。问题是我什至不能使用 EGifOpenFileName();该程序在该行崩溃。

谁能帮我看看giflib的API?这个问题真的很令人沮丧。 谢谢。

编辑:

出于简单编码的目的,我不想指定颜色 table,我只想编码单帧 GIF。

原型为:

GifFileType *EGifOpenFileName(char *GifFileName, bool GifTestExistance, int *ErrorCode)

你应该写成

GifFileType* image_out = EGifOpenFileName(fileName,true, &errorCode);

注意 GifFileType 不是 POD 类型,因此您应该不要 那样复制。