From: glennrp Date: Fri, 19 Aug 2011 02:31:16 +0000 (+0000) Subject: Make png encoder respect -define png:colortype=2 for PseudoClass image. X-Git-Tag: 7.0.1-0~7178 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7e65e93c71716f2a5c03c0808adedae21d519fb2;p=imagemagick Make png encoder respect -define png:colortype=2 for PseudoClass image. --- diff --git a/coders/png.c b/coders/png.c index 5f38c2dd8..7aa749b91 100644 --- a/coders/png.c +++ b/coders/png.c @@ -7612,6 +7612,15 @@ static MagickBooleanType WriteOnePNGImage(MngInfo *mng_info, " storage_class=PseudoClass"); } + if (image->storage_class == PseudoClass && + (mng_info->write_png8 || mng_info->write_png24 || mng_info->write_png32 || + (mng_info->write_png_colortype != 0 && + mng_info->write_png_colortype != 4))) + { + (void) SyncImage(image); + image->storage_class = DirectClass; + } + if (ping_preserve_colormap == MagickFalse) { if (image->storage_class != PseudoClass && image->colormap != NULL) @@ -9040,13 +9049,13 @@ static MagickBooleanType WriteOnePNGImage(MngInfo *mng_info, } } /* end of write_png8 */ - else if (mng_info->write_png24) + else if (mng_info->write_png24 || mng_info->write_png_colortype == 3) { image_matte=MagickFalse; ping_color_type=(png_byte) PNG_COLOR_TYPE_RGB; } - else if (mng_info->write_png32) + else if (mng_info->write_png32 || mng_info->write_png_colortype == 7) { image_matte=MagickTrue; ping_color_type=(png_byte) PNG_COLOR_TYPE_RGB_ALPHA;