Introducing GetImageColorspaceType()
diff --git a/coders/json.c b/coders/json.c
index 3688130..c445414 100644
--- a/coders/json.c
+++ b/coders/json.c
@@ -951,7 +951,6 @@
user_time;
ImageType
- base_type,
type;
MagickBooleanType
@@ -1030,17 +1029,12 @@
}
JSONFormatLocaleFile(file," \"units\": %s,\n",CommandOptionToMnemonic(
MagickResolutionOptions,(ssize_t) image->units));
- colorspace=image->colorspace;
- type=IdentifyImageType(image,exception);
- if ((type == BilevelType) || (type == GrayscaleType) ||
- (type == GrayscaleAlphaType))
- colorspace=GRAYColorspace;
+ type=GetImageType(image);
JSONFormatLocaleFile(file," \"type\": %s,\n",CommandOptionToMnemonic(
MagickTypeOptions,(ssize_t) type));
- base_type=GetImageType(image);
- if (type != base_type)
+ if (image->type != type)
JSONFormatLocaleFile(file," \"baseType\": %s,\n",
- CommandOptionToMnemonic(MagickTypeOptions,(ssize_t) base_type));
+ CommandOptionToMnemonic(MagickTypeOptions,(ssize_t) image->type));
JSONFormatLocaleFile(file," \"endianess\": %s,\n",
CommandOptionToMnemonic(MagickEndianOptions,(ssize_t) image->endian));
locate=GetImageArtifact(image,"identify:locate");
@@ -1075,6 +1069,7 @@
if (image->alpha_trait != UndefinedPixelTrait)
(void) PrintChannelLocations(file,image,AlphaPixelChannel,"Alpha",
type,max_locations,MagickTrue,channel_statistics);
+ colorspace=GetImageColorspaceType(image,exception);
switch (colorspace)
{
case RGBColorspace:
@@ -1114,8 +1109,13 @@
/*
Detail channel depth and extrema.
*/
+ colorspace=GetImageColorspaceType(image,exception);
JSONFormatLocaleFile(file," \"colorspace\": %s,\n",
CommandOptionToMnemonic(MagickColorspaceOptions,(ssize_t) colorspace));
+ if (image->colorspace != colorspace)
+ JSONFormatLocaleFile(file," \"baseColorspace\": %s,\n",
+ CommandOptionToMnemonic(MagickColorspaceOptions,(ssize_t)
+ image->colorspace));
channel_statistics=(ChannelStatistics *) NULL;
channel_moments=(ChannelMoments *) NULL;
channel_phash=(ChannelPerceptualHash *) NULL;