|
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;
|