Added artifact "jpeg:colors" to enable jpeg library quantization.
clone_info->transparent_color=image_info->transparent_color;
clone_info->dither=image_info->dither;
clone_info->monochrome=image_info->monochrome;
- clone_info->colors=image_info->colors;
clone_info->colorspace=image_info->colorspace;
clone_info->type=image_info->type;
clone_info->orientation=image_info->orientation;
if (option != (const char *) NULL)
(void) QueryColorCompliance(option,AllCompliance,&image->border_color,
&image->exception);
- option=GetImageOption(image_info,"colors");
- if (option != (const char *) NULL)
- image->colors=StringToUnsignedLong(option);
option=GetImageOption(image_info,"compose");
if (option != (const char *) NULL)
image->compose=(CompositeOperator) ParseCommandOption(MagickComposeOptions,
columns, /* physical size of image */
rows,
depth, /* depth of image on read/write */
- colors; /* size of color table on read */
+ colors; /* Size of color table, or actual color count if known */
+ /* Only valid if image is not DirectClass */
PixelPacket
*colormap,
dither, /* dither enable-disable */
monochrome; /* read/write pcl,pdf,ps,xps as monocrome image */
- size_t
- colors; /* record the user requested color reduction! */
-
ColorspaceType
colorspace;
image_info->channel=(ChannelType) ParseChannelOption(argv[i+1]);
break;
}
- if (LocaleCompare("colors",option+1) == 0)
- {
- image_info->colors=StringToUnsignedLong(argv[i+1]);
- break;
- }
if (LocaleCompare("colorspace",option+1) == 0)
{
if (*option == '+')
image->compression=JPEGCompression;
image->interlace=JPEGInterlace;
#endif
- if ((image_info->colors > 8) && (image_info->colors <= 256))
+ option=GetImageOption(image_info,"jpeg:colors");
+ if (option != (const char *) NULL)
{
- /*
- Let the JPEG library quantize for us.
- */
+ /* Let the JPEG library quantize the image */
jpeg_info.quantize_colors=MagickTrue;
- jpeg_info.desired_number_of_colors=(int) image_info->colors;
+ jpeg_info.desired_number_of_colors=(int) StringToUnsignedLong(option);
}
option=GetImageOption(image_info,"jpeg:block-smoothing");
if (option != (const char *) NULL)
image->colorspace=YCbCrColorspace;
if (jpeg_info.out_color_space == JCS_CMYK)
image->colorspace=CMYKColorspace;
- if ((image_info->colors != 0) && (image_info->colors <= 256))
- if (AcquireImageColormap(image,image_info->colors,exception) == MagickFalse)
+ option=GetImageOption(image_info,"jpeg:colors");
+ if (option != (const char *) NULL)
+ if (AcquireImageColormap(image,StringToUnsignedLong(option),exception)
+ == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
if ((jpeg_info.output_components == 1) &&
(jpeg_info.quantize_colors == MagickFalse))