diff --git a/loadsave.c b/loadsave.c index 3d381bac..a3ee7c44 100644 --- a/loadsave.c +++ b/loadsave.c @@ -5409,20 +5409,20 @@ void Load_PNG(void) if (png_ptr) { info_ptr = png_create_info_struct(png_ptr); - if (info_ptr) - { - png_byte color_type; + if (info_ptr) + { + png_byte color_type; png_byte bit_depth; - if (!setjmp(png_jmpbuf(png_ptr))) - { - png_init_io(png_ptr, Fichier); - png_set_sig_bytes(png_ptr, 8); + if (!setjmp(png_jmpbuf(png_ptr))) + { + png_init_io(png_ptr, Fichier); + png_set_sig_bytes(png_ptr, 8); - png_read_info(png_ptr, info_ptr); - color_type = info_ptr->color_type; - bit_depth = info_ptr->bit_depth; - + png_read_info(png_ptr, info_ptr); + color_type = info_ptr->color_type; + bit_depth = info_ptr->bit_depth; + if (bit_depth <= 8 && (color_type == PNG_COLOR_TYPE_PALETTE || PNG_COLOR_TYPE_GRAY)) { Initialiser_preview(info_ptr->width,info_ptr->height,Taille_du_fichier,FORMAT_PNG); @@ -5430,26 +5430,26 @@ void Load_PNG(void) if (Erreur_fichier==0) { int x,y; - png_colorp palette; - int num_palette; - - if (color_type == PNG_COLOR_TYPE_GRAY) - { - if (bit_depth < 8) - png_set_gray_1_2_4_to_8(png_ptr); - // palette de niveaux de gris - for (x=0;xrowbytes); - png_read_image(png_ptr, row_pointers); - - for (y=0; yrowbytes); + png_read_image(png_ptr, row_pointers); + + for (y=0; y