from http://www.oyranos.org/scm?p=oyranos.git;a=commitdiff;h=c39976bf5de8a70f71cef2ecafae13d17e811857 --- a/modules/oyranos_cmm_oPNG.c +++ b/modules/oyranos_cmm_oPNG.c @@ -816,7 +816,8 @@ oyImage_s * oyImage_FromPNG ( const char * filename, spp = 2; break; case PNG_COLOR_TYPE_PALETTE: png_set_palette_to_rgb( png_ptr ); - spp = 3; break; + /* expect alpha */ + spp = 4; break; case PNG_COLOR_TYPE_RGB: spp = 3; break; case PNG_COLOR_TYPE_RGB_ALPHA: @@ -884,10 +885,15 @@ oyImage_s * oyImage_FromPNG ( const char * filename, oyToDataType_m(pixel_layout), 0 ); png_byte ** array2d = (png_byte**) oyArray2d_GetData( a ); - int i; + int i,y; + /* both variants of libpng access appear equal */ + if(1) + png_read_image( png_ptr, array2d ); + else for( i = 0; i < num_passes; ++i ) - png_read_rows( png_ptr, array2d, NULL, height ); + for( y = 0; y < height; ++y ) + png_read_row( png_ptr, array2d[y], NULL ); oyImage_SetData ( image_in, (oyStruct_s**) &a, 0,0,0,0,0,0 ); }