From 7e65e93c71716f2a5c03c0808adedae21d519fb2 Mon Sep 17 00:00:00 2001 From: glennrp Date: Fri, 19 Aug 2011 02:31:16 +0000 Subject: [PATCH] Make png encoder respect -define png:colortype=2 for PseudoClass image. --- coders/png.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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; -- 2.50.1