@ -222,24 +222,23 @@ KisImageBuilder_Result KisPNGConverter::decode(const KURL& uri)
}
bool hasalpha = ( color_type = = PNG_COLOR_TYPE_RGB_ALPHA | | color_type = = PNG_COLOR_TYPE_GRAY_ALPHA ) ;
// 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 ;
if ( interlace_type = = PNG_INTERLACE_ADAM7 )
number_of_passes = png_set_interlace_handling ( png_ptr ) ;
// Read image profile
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 ) )
if ( png_get_valid ( png_ptr , info_ptr , PNG_INFO_iCCP ) ) {
png_charp profile_name ;
# if PNG_LIBPNG_VER < 10500
png_charp profile_data ;
# else
if ( png_get_iCCP ( png_ptr , info_ptr , & profile_name , & compression_type , & profile_data , & proflen ) )
png_bytep profile_data ;
# endif
int compression_type ;
png_uint_32 proflen ;
if ( png_get_iCCP ( png_ptr , info_ptr , & profile_name , & compression_type , & profile_data , & proflen ) )
{
TQByteArray profile_rawdata ;
// XXX: Hardcoded for icc type -- is that correct for us?
@ -257,6 +256,7 @@ KisImageBuilder_Result KisPNGConverter::decode(const KURL& uri)
}
}
}
}
// Retrieve a pointer to the colorspace
KisColorSpace * cs ;
@ -636,10 +636,10 @@ 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 ( ) ) ;
# if PNG_LIBPNG_VER < 10500
png_set_iCCP ( png_ptr , info_ptr , name , PNG_COMPRESSION_TYPE_BASE , ( png_charp ) ( * 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 ( ) ) ;
png_set_iCCP ( png_ptr , info_ptr , name , PNG_COMPRESSION_TYPE_BASE , ( png_bytep ) ( * it ) - > annotation ( ) . data ( ) , ( * it ) - > annotation ( ) . size ( ) ) ;
# endif
}
+ + it ;