else
if (mng_info->IsPalette)
{
+ unsigned long
+ number_colors;
+
+ number_colors=image_colors;
+
if (image_depth <= 8)
{
- unsigned long
- number_colors;
-
- number_colors=image_colors;
/*
Set image palette.
*/
}
}
- /*
- Identify which colormap entry is the background color.
- */
- for (i=0; i < (long) MagickMax(1L*number_colors-1L,1L); i++)
- if (IsPNGColorEqual(ping_background,image->colormap[i]))
- break;
- ping_background.index=(png_byte) i;
}
}
else
ping_trans_color.gray=(png_uint_16) (QuantumScale*(maxval*
ping_trans_color.gray));
}
+
+ if ((int) ping_color_type == PNG_COLOR_TYPE_PALETTE)
+ {
+ /*
+ Identify which colormap entry is the background color.
+ */
+
+ unsigned long
+ number_colors;
+
+ number_colors=image_colors;
+
+ for (i=0; i < (long) MagickMax(1L*number_colors-1L,1L); i++)
+ if (IsPNGColorEqual(ping_background,image->colormap[i]))
+ break;
+
+ ping_background.index=(png_byte) i;
+
+ if (logging)
+ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
+ " Setting up bKGD chunk with index=%d",(int) i);
+
+ png_set_bKGD(ping,ping_info,&ping_background);
+ }
+
if (logging != MagickFalse)
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
" PNG color type: %d",ping_color_type);