}
colormap=(unsigned char *) RelinquishMagickMemory(colormap);
}
- for (i=0; i < (ssize_t) image->colors; i++)
- if ((image->colormap[i].red != image->colormap[i].green) ||
- (image->colormap[i].green != image->colormap[i].blue))
- break;
- if ((i == (ssize_t) image->colors) && (image->gamma == 1.0))
- SetImageColorspace(image,GRAYColorspace,exception);
+ if (image->gamma == 1.0)
+ {
+ for (i=0; i < (ssize_t) image->colors; i++)
+ if (IsPixelInfoGray(image->colormap+i) == MagickFalse)
+ break;
+ (void) SetImageColorspace(image,i == (ssize_t) image->colors ?
+ GRAYColorspace : RGBColorspace,exception);
+ }
if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))
if (image->scene >= (image_info->scene+image_info->number_scenes-1))
break;
one=1;
do
{
- if ((IssRGBColorspace(image->colorspace) == MagickFalse) &&
- (IsRGBColorspace(image->colorspace) == MagickFalse) &&
- (IsImageGray(image,exception) == MagickFalse))
+ if (IssRGBCompatibleColorspace(image->colorspace) == MagickFalse)
(void) TransformImageColorspace(image,sRGBColorspace,exception);
opacity=(-1);
if (IsImageOpaque(image,exception) != MagickFalse)