diff -u -aur rawstudio-2.0/plugins/load-gdk/exiv2-colorspace.cpp rawstudio-2.0.new/plugins/load-gdk/exiv2-colorspace.cpp --- rawstudio-2.0/plugins/load-gdk/exiv2-colorspace.cpp 2011-02-23 23:35:18.000000000 +0100 +++ rawstudio-2.0.new/plugins/load-gdk/exiv2-colorspace.cpp 2012-02-28 11:19:29.600026282 +0100 @@ -125,11 +125,17 @@ int compression_type; /* Extract embedded ICC profile */ - if (info_ptr->valid & PNG_INFO_iCCP) + if (png_get_valid(png_ptr, info_ptr, TRUE) & PNG_INFO_iCCP) { +#if PNG_LIBPNG_VER_SONUM >=15 + png_uint_32 retval = png_get_iCCP (png_ptr, info_ptr, + (png_charpp) &icc_profile_title, &compression_type, + (png_byte**) &icc_profile, (png_uint_32*) &icc_profile_size); +#else png_uint_32 retval = png_get_iCCP (png_ptr, info_ptr, (png_charpp) &icc_profile_title, &compression_type, (png_charpp) &icc_profile, (png_uint_32*) &icc_profile_size); +#endif if (retval != 0) { RSIccProfile *icc = rs_icc_profile_new_from_memory((gchar*)icc_profile, icc_profile_size, TRUE); diff -u -aur rawstudio-2.0/plugins/output-pngfile/output-pngfile.c rawstudio-2.0.new/plugins/output-pngfile/output-pngfile.c --- rawstudio-2.0/plugins/output-pngfile/output-pngfile.c 2011-03-26 02:52:29.000000000 +0100 +++ rawstudio-2.0.new/plugins/output-pngfile/output-pngfile.c 2012-02-28 11:31:50.392934364 +0100 @@ -23,6 +23,7 @@ #include #include "config.h" #include +#include #define RS_TYPE_PNGFILE (rs_pngfile_type) #define RS_PNGFILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RS_TYPE_PNGFILE, RSPngfile)) @@ -197,8 +198,7 @@ const RSIccProfile *profile = rs_color_space_get_icc_profile(pngfile->color_space, pngfile->save16bit); rs_icc_profile_get_data(profile, &data, &data_length); - // FIXME: Insert correct profile name - png_set_iCCP(png_ptr, info_ptr, "Profile name", PNG_COMPRESSION_TYPE_BASE, data, data_length); + png_set_iCCP(png_ptr, info_ptr, (png_charp)rs_color_space_get_name(pngfile->color_space), PNG_COMPRESSION_TYPE_BASE, (png_charp)data, data_length); if (pngfile->save16bit) png_set_gAMA(png_ptr, info_ptr, 1.0); }