c - giflib 用于编辑动画 gif 的用法

标签 c gif

目的是针对给定的 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/

相关文章:

c - scanf() 跳过变量

objective-c - 实时gif解码的乐趣

java - NetBeans GUI 生成器 : Add gifs to label

java - Java Swing 中 GIF ImageIcon 不断闪烁

c - 如何在 win32 API 中使用代理连接到远程服务器?

c - 为什么我的 C 套接字服务器没有接收数据

c - 如何生成不同整数的数组

ios - UIImageView+animatedGIF总是LOOPS

java - 透明背景的gif问题

c - 检测 stdin 上的空字符串和 C 中的 tolower 函数