Libpng 1.5 fixes.

Thanks to Francois Andriot.
pull/1/head
Darrell Anderson 12 years ago
parent 72a80f68f0
commit 1525b47208

@ -43,6 +43,8 @@
#include <kis_paint_layer.h>
#include <kis_group_layer.h>
#include <zlib.h>
namespace {
const TQ_UINT8 PIXEL_BLUE = 0;
@ -222,6 +224,9 @@ KisImageBuilder_Result KisPNGConverter::decode(const KURL& uri)
// Read image profile
png_charp profile_name, profile_data;
#if PNG_LIBPNG_VER_MAJOR > 1 || ( PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 5 )
unsigned char* uprofile_data = reinterpret_cast<unsigned char*>(profile_data);
#endif
int compression_type;
png_uint_32 proflen;
int number_of_passes = 1;
@ -230,7 +235,11 @@ KisImageBuilder_Result KisPNGConverter::decode(const KURL& uri)
number_of_passes = png_set_interlace_handling(png_ptr);
KisProfile* profile = 0;
#if PNG_LIBPNG_VER_MAJOR > 1 || ( PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 5 )
if(png_get_iCCP(png_ptr, info_ptr, &profile_name, &compression_type, &uprofile_data, &proflen))
#else
if(png_get_iCCP(png_ptr, info_ptr, &profile_name, &compression_type, &profile_data, &proflen))
#endif
{
TQByteArray profile_rawdata;
// XXX: Hardcoded for icc type -- is that correct for us?
@ -627,7 +636,11 @@ KisImageBuilder_Result KisPNGConverter::buildFile(const KURL& uri, KisPaintLayer
} else { // Profile
char* name = new char[(*it)->type().length()+1];
strcpy(name, (*it)->type().ascii());
#if PNG_LIBPNG_VER_MAJOR > 1 || ( PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 5 )
png_set_iCCP(png_ptr, info_ptr, name, PNG_COMPRESSION_TYPE_BASE, (unsigned char*)(*it)->annotation().data(), (*it) -> annotation() . size());
#else
png_set_iCCP(png_ptr, info_ptr, name, PNG_COMPRESSION_TYPE_BASE, (char*)(*it)->annotation().data(), (*it) -> annotation() . size());
#endif
}
++it;
}

Loading…
Cancel
Save