|
|
|
@ -57,6 +57,12 @@ extern "C"
|
|
|
|
|
namespace Digikam
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
#if PNG_LIBPNG_VER_MAJOR > 1 || ( PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 5 )
|
|
|
|
|
typedef png_bytep iCCP_data;
|
|
|
|
|
#else
|
|
|
|
|
typedef png_charp iCCP_data;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
PNGLoader::PNGLoader(DImg* image)
|
|
|
|
|
: DImgLoader(image)
|
|
|
|
|
{
|
|
|
|
@ -403,7 +409,12 @@ bool PNGLoader::load(const TQString& filePath, DImgLoaderObserver *observer)
|
|
|
|
|
|
|
|
|
|
TQMap<int, TQByteArray>& metaData = imageMetaData();
|
|
|
|
|
|
|
|
|
|
#if PNG_LIBPNG_VER_MAJOR > 1 || ( PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 5 )
|
|
|
|
|
png_charp profile_name;
|
|
|
|
|
iCCP_data profile_data=NULL;
|
|
|
|
|
#else
|
|
|
|
|
png_charp profile_name, profile_data=NULL;
|
|
|
|
|
#endif
|
|
|
|
|
png_uint_32 profile_size;
|
|
|
|
|
int compression_type;
|
|
|
|
|
|
|
|
|
@ -599,7 +610,11 @@ bool PNGLoader::save(const TQString& filePath, DImgLoaderObserver *observer)
|
|
|
|
|
|
|
|
|
|
if (!profile_rawdata.isEmpty())
|
|
|
|
|
{
|
|
|
|
|
#if PNG_LIBPNG_VER_MAJOR > 1 || ( PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 5 )
|
|
|
|
|
png_set_iCCP(png_ptr, info_ptr, (png_charp)("icc"), PNG_COMPRESSION_TYPE_BASE, (iCCP_data)profile_rawdata.data(), profile_rawdata.size());
|
|
|
|
|
#else
|
|
|
|
|
png_set_iCCP(png_ptr, info_ptr, (png_charp)"icc", PNG_COMPRESSION_TYPE_BASE, profile_rawdata.data(), profile_rawdata.size());
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -------------------------------------------------------------------
|
|
|
|
|