|
|
- Port qgifer to giflib 5 API.
- See also: https://bugs.gentoo.org/show_bug.cgi?id=536634
-
- --- a/src/gifcreator.cpp
- +++ b/src/gifcreator.cpp
- @@ -38,7 +38,7 @@
- j--;
- }
- for(int i=0;i<cmaps.size();i++)
- - FreeMapObject(cmaps[i]);
- + GifFreeMapObject(cmaps[i]);
- }
-
-
- @@ -52,7 +52,7 @@
- }
-
-
- - GifFileType *GifFile = EGifOpenFileName(filename, FALSE);
- + GifFileType *GifFile = EGifOpenFileName(filename, 0, NULL);
-
- if (!GifFile){
- PrintGifError();
- @@ -74,7 +74,7 @@
- {
- char nsle[12] = "NETSCAPE2.0";
- char subblock[3];
- - if (EGifPutExtensionFirst(GifFile, APPLICATION_EXT_FUNC_CODE, 11, nsle) == GIF_ERROR) {
- + if (EGifPutExtension(GifFile, APPLICATION_EXT_FUNC_CODE, 11, nsle) == GIF_ERROR) {
- PrintGifError();
- return false;
- }
- @@ -82,7 +82,7 @@
- subblock[2] = loop_count % 256;
- subblock[1] = loop_count / 256;
-
- - if (EGifPutExtensionLast(GifFile, APPLICATION_EXT_FUNC_CODE, 3, subblock) == GIF_ERROR) {
- + if (EGifPutExtension(GifFile, APPLICATION_EXT_FUNC_CODE, 3, subblock) == GIF_ERROR) {
- PrintGifError();
- return false;
- }
- @@ -111,7 +111,7 @@
-
- if (EGifPutImageDesc(
- GifFile,
- - 0, 0, w, h, FALSE, cmaps.size() > ni ? cmaps.at(ni) : cmaps.at(cmaps.size()-1)
- + 0, 0, w, h, 0, cmaps.size() > ni ? cmaps.at(ni) : cmaps.at(cmaps.size()-1)
- ) == GIF_ERROR) {
- PrintGifError();
- endProgress();
- @@ -135,7 +135,7 @@
- return false;
- }
-
- - if (EGifCloseFile(GifFile) == GIF_ERROR) {
- + if (EGifCloseFile(GifFile, NULL) == GIF_ERROR) {
- PrintGifError();
- endProgress();
- return false;
- --- a/src/gifcreator.h
- +++ b/src/gifcreator.h
- @@ -31,6 +31,12 @@
- typedef vector<GifByteType> Frame;
- typedef unsigned char Byte;
-
- +static inline void
- +PrintGifError()
- +{
- + fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(GIF_ERROR));
- +}
- +
- class GifCreator
- {
-
- --- a/src/palettewidget.cpp
- +++ b/src/palettewidget.cpp
- @@ -34,7 +34,7 @@
-
- PaletteWidget::~PaletteWidget()
- {
- - FreeMapObject(palette);
- + GifFreeMapObject(palette);
- }
-
- void PaletteWidget::paintEvent(QPaintEvent*)
- @@ -117,7 +117,7 @@
- if(palette && mindiff > 1)
- {
- qDebug() << "deleting old palette, size: " << size << ", colors: " << palette->ColorCount;
- - FreeMapObject(palette);
- + GifFreeMapObject(palette);
- qDebug() << "done";
- palette = NULL;
- }
- @@ -157,7 +157,7 @@
- }
-
- ColorMapObject* previous = palette;
- - palette = MakeMapObject(size, NULL);
- + palette = GifMakeMapObject(size, NULL);
- if (!palette)
- {
- qDebug() << "NULL palette!";
- @@ -165,7 +165,7 @@
- }
-
-
- - if (QuantizeBuffer(fimg.width(), fimg.height(), &size,
- + if (GifQuantizeBuffer(fimg.width(), fimg.height(), &size,
- &(r[0]),&(g[0]),&(b[0]), &(output[0]),
- palette->Colors) == GIF_ERROR)
- {
- @@ -178,11 +178,11 @@
- //qDebug() << "difference: " << df;
- if(previous && df < mindiff)
- {
- - FreeMapObject(palette);
- + GifFreeMapObject(palette);
- palette = previous;
- }
- else if(df >= mindiff)
- - FreeMapObject(previous);
- + GifFreeMapObject(previous);
-
- // qDebug() << "palette (" << palette->ColorCount << ") :";
- // for(int i=0;i<size;i++)
- @@ -230,8 +230,8 @@
- {
- QStringList rgb = QString(str).split(";", QString::SkipEmptyParts);
- if(palette)
- - FreeMapObject(palette);
- - palette = MakeMapObject(rgb.size(), NULL);
- + GifFreeMapObject(palette);
- + palette = GifMakeMapObject(rgb.size(), NULL);
- if(!palette)
- return false;
- size = rgb.size();
- --- a/src/palettewidget.h
- +++ b/src/palettewidget.h
- @@ -30,7 +30,7 @@
- PaletteWidget(QWidget* parent=0, Qt::WindowFlags f=0);
- virtual ~PaletteWidget();
- ColorMapObject* map() {return palette;}
- - ColorMapObject* mapCopy() {return MakeMapObject(palette->ColorCount, palette->Colors);}
- + ColorMapObject* mapCopy() {return GifMakeMapObject(palette->ColorCount, palette->Colors);}
- bool fromImage(const QImage& img, int palette_size, float mindiff = 2);
- void setColumnCount(int cc){cols = cc;}
- bool toFile(const QString& path);
- @@ -38,7 +38,7 @@
- QString toString();
- bool fromString(const QString& str);
- int getSize() const {return size;}
- - void clear() {if(palette) FreeMapObject(palette); palette = NULL; update();}
- + void clear() {if(palette) GifFreeMapObject(palette); palette = NULL; update();}
- private:
- int size;
- int cols;
|