On 04/02/2012 07:23 PM, David C. Rankin wrote:
I have also uncovered a digikam patch, http://bugsfiles.kde.org/attachment.cgi?id=56384 , that I don't think is a direct patch for this problem, but hopefully it will help a bit. The patch is labeled:
[Digikam-devel] [Bug 264181] New: png-1.5 compatibility fix http://mail.kde.org/pipermail/digikam-devel/2011-January/048984.html
This patchfile is:
$NetBSD: patch-aa,v 1.11 2011/01/20 23:37:36 wiz Exp $
Fix build with png-1.5.
--- libs/dimg/loaders/pngloader.cpp.orig 2010-11-22 17:47:36.000000000 +0000 +++ libs/dimg/loaders/pngloader.cpp @@ -494,7 +494,8 @@ bool PNGLoader::load(const QString& file
if (m_loadFlags & LoadICCData) {
png_charp profile_name, profile_data=NULL;
png_charp profile_name;
png_bytep profile_data=NULL; png_uint_32 profile_size; int compression_type;
@@ -730,7 +731,7 @@ bool PNGLoader::save(const QString& file
if (!profile_rawdata.isEmpty()) {
png_set_iCCP(png_ptr, info_ptr, (png_charp)("icc"),
PNG_COMPRESSION_TYPE_BASE, profile_rawdata.data(), profile_rawdata.size());
png_set_iCCP(png_ptr, info_ptr, (png_charp)("icc"),
PNG_COMPRESSION_TYPE_BASE, (png_bytep)profile_rawdata.data(), profile_rawdata.size()); }
There is a second patch that looks a bit more complete at: http://bugsfiles.kde.org/attachment.cgi?id=56390
Index: libs/dimg/loaders/pngloader.cpp =================================================================== --- libs/dimg/loaders/pngloader.cpp (revision 1216766) +++ libs/dimg/loaders/pngloader.cpp (working copy) @@ -73,6 +73,12 @@ namespace Digikam {
+#if 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) { @@ -574,7 +580,8 @@
if (m_loadFlags & LoadICCData) { - png_charp profile_name, profile_data=NULL; + png_charp profile_name; + iCCP_data profile_data=NULL; png_uint_32 profile_size; int compression_type;
@@ -854,7 +861,7 @@
if (!profile_rawdata.isEmpty()) { - png_set_iCCP(png_ptr, info_ptr, (png_charp)("icc"), PNG_COMPRESSION_TYPE_BASE, profile_rawdata.data(), profile_rawdata.size()); + png_set_iCCP(png_ptr, info_ptr, (png_charp)("icc"), PNG_COMPRESSION_TYPE_BASE, (iCCP_data)profile_rawdata.data(), profile_rawdata.size()); }