blob: 7bcc28651f1c4e5fee40ea8f6b15879d8230c9a5 [file] [log] [blame]
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 );
}