diff --git a/coders/miff.c b/coders/miff.c
index 5d7b5c9..30b4b4d 100644
--- a/coders/miff.c
+++ b/coders/miff.c
@@ -688,7 +688,7 @@
MagickFalse,options);
if (colorspace < 0)
break;
- image->colorspace=(ColorspaceType) colorspace;
+ (void) SetImageColorspace(image,(ColorspaceType) colorspace, exception);
break;
}
if (LocaleCompare(keyword,"compression") == 0)
diff --git a/coders/mpc.c b/coders/mpc.c
index 0b71122..429ce79 100644
--- a/coders/mpc.c
+++ b/coders/mpc.c
@@ -388,7 +388,7 @@
MagickFalse,options);
if (colorspace < 0)
break;
- image->colorspace=(ColorspaceType) colorspace;
+ (void) SetImageColorspace(image,(ColorspaceType) colorspace, exception);
break;
}
if (LocaleCompare(keyword,"compression") == 0)
diff --git a/coders/png.c b/coders/png.c
index f3d83d1..bc9c4df 100644
--- a/coders/png.c
+++ b/coders/png.c
@@ -2280,6 +2280,14 @@
image->depth=ping_bit_depth;
image->depth=GetImageQuantumDepth(image,MagickFalse);
image->interlace=ping_interlace_method != 0 ? PNGInterlace : NoInterlace;
+ if (((int) ping_color_type == PNG_COLOR_TYPE_GRAY) ||
+ ((int) ping_color_type == PNG_COLOR_TYPE_GRAY_ALPHA))
+ {
+ image->rendering_intent=UndefinedIntent;
+ image->gamma=1.000;
+ (void) ResetMagickMemory(&image->chromaticity,0,
+ sizeof(image->chromaticity));
+ }
if (logging != MagickFalse)
{
(void) LogMagickEvent(CoderEvent,GetMagickModule(),