目的是针对给定的 GIF 文件,其中包含多个图像,提取这些图像像素,编辑(更改它们)并将它们放回 GIF 文件。 尝试使用 giflib 来做到这一点。
使用的语言是C。
我已成功读取 Gif 文件并使用以下代码访问图像的像素:
GifFileType *gifFile = DGifOpenFileName(filename);
DGifSlurp(gifFile);
但正如Documentation中所说的那样: 关于 DGifSlurp 函数:
When you have modified the image to taste, write it out with EGifSpew().
但是使用该函数会导致: GIF-LIB 错误:给定文件未打开进行写入。
在下面的代码中:
GifFileType *gifFile = DGifOpenFileName(filename);
DGifSlurp(gifFile);
EGifSpew(gifFile);
你知道如何保存编辑好的gif图片吗?
最佳答案
您的文档已过时。你应该看看这里:http://giflib.sourceforge.net/gif_lib.html#idp26995312
您可以通过函数 Hook 写入 GIF 文件。初始化为
GifFileType *EGifOpen(void *userPtr, OutputFunc writeFunc, int *ErrorCode) 并查看 OutputFunc 类型的库头文件。
此外,函数 EGifSpew() 将 fd 作为 gifFile 的第二个参数。
希望对您有所帮助。
关于c - giflib 用于编辑动画 gif 的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16433653/