2013-05-08 4 views
2

Целью данного файла GIF, включающего в себя несколько изображений внутри, чтобы извлечь эти пиксели изображения, отредактировать (изменить их) и вернуть их в файл GIF. Попытка сделать это с помощью giflib.Использование giflib для редактирования анимированного gif

язык используется 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); 

Вы знаете, как сохранить отредактированный рисунок?

ответ

0

Ваш документ устарел. Вы должны посмотреть здесь: http://giflib.sourceforge.net/gif_lib.html#idp26995312

Вы можете записать в файл GIF через функцию hook. Инициализировать с помощью

GifFileType * EGifOpen (void * userPtr, OutputFunc writeFunc, int * ErrorCode) и посмотреть файл заголовка библиотеки для типа OutputFunc.

Кроме того, функция EGifSpew() принимает второй аргумент fd в gifFile.

Надеюсь, это помогло.

Смежные вопросы