blue,
alpha;
- const long
+ const ssize_t
compliance;
} ColorMapInfo;
\f
static const ColorMapInfo
ColorMap[] =
{
- { "none", 0, 0, 0, 0, SVGCompliance },
+ { "none", 0, 0, 0, 0, SVGCompliance | XPMCompliance },
{ "black", 0, 0, 0, 1, SVGCompliance | X11Compliance | XPMCompliance },
{ "red", 255, 0, 0, 1, SVGCompliance | X11Compliance | XPMCompliance },
{ "magenta", 255, 0, 255, 1, SVGCompliance | X11Compliance | XPMCompliance },
% %
% %
% %
-+ G e t C o l o r I n f o %
++ G e t C o l o r C o m p l i a n c e %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% GetColorInfo() searches the color list for the specified name and if found
-% returns attributes for that color.
+% GetColorInfo() searches the color list for the specified name and standards
+% compliance and if found returns attributes for that color.
%
% The format of the GetColorInfo method is:
%
% const PixelPacket *GetColorInfo(const char *name,
-% ExceptionInfo *exception)
+% const ComplianceType compliance,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
-% o color_info: search the color list for the specified name and if found
-% return attributes for that color.
-%
% o name: the color name.
%
+% o compliance: Adhere to this color standard: SVG, X11, or XPM.
+%
% o exception: return any errors or warnings in this structure.
%
*/
-MagickExport const ColorInfo *GetColorInfo(const char *name,
- ExceptionInfo *exception)
+MagickExport const ColorInfo *GetColorCompliance(const char *name,
+ const ComplianceType compliance,ExceptionInfo *exception)
{
char
colorname[MaxTextExtent];
p=(const ColorInfo *) GetNextValueInLinkedList(color_list);
while (p != (const ColorInfo *) NULL)
{
- if (LocaleCompare(colorname,p->name) == 0)
+ if (((p->compliance & compliance) != 0) &&
+ (LocaleCompare(colorname,p->name) == 0))
break;
p=(const ColorInfo *) GetNextValueInLinkedList(color_list);
}
% %
% %
% %
++ G e t C o l o r I n f o %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% GetColorInfo() searches the color list for the specified name and if found
+% returns attributes for that color.
+%
+% The format of the GetColorInfo method is:
+%
+% const PixelPacket *GetColorInfo(const char *name,
+% ExceptionInfo *exception)
+%
+% A description of each parameter follows:
+%
+% o color_info: search the color list for the specified name and if found
+% return attributes for that color.
+%
+% o name: the color name.
+%
+% o exception: return any errors or warnings in this structure.
+%
+*/
+MagickExport const ColorInfo *GetColorInfo(const char *name,
+ ExceptionInfo *exception)
+{
+ return(GetColorCompliance(name,AllCompliance,exception));
+}
+\f
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
+ C o n c a t e n a t e C o l o r C o m p o n e n t %
% %
% %
if (pixel->depth > 16)
{
(void) FormatMagickString(component,MaxTextExtent,"%10lu",
- (unsigned long) ScaleQuantumToLong(RoundToQuantum(color)));
+ (unsigned long) ScaleQuantumToLong(ClampToQuantum(color)));
(void) ConcatenateMagickString(tuple,component,MaxTextExtent);
return;
}
if (pixel->depth > 8)
{
(void) FormatMagickString(component,MaxTextExtent,"%5d",
- ScaleQuantumToShort(RoundToQuantum(color)));
+ ScaleQuantumToShort(ClampToQuantum(color)));
(void) ConcatenateMagickString(tuple,component,MaxTextExtent);
return;
}
(void) FormatMagickString(component,MaxTextExtent,"%3d",
- ScaleQuantumToChar(RoundToQuantum(color)));
+ ScaleQuantumToChar(ClampToQuantum(color)));
(void) ConcatenateMagickString(tuple,component,MaxTextExtent);
return;
}
if (channel == OpacityChannel)
{
- (void) FormatMagickString(component,MaxTextExtent,"%.15g",
+ (void) FormatMagickString(component,MaxTextExtent,"%g",
(double) (QuantumScale*color));
(void) ConcatenateMagickString(tuple,component,MaxTextExtent);
return;
if ((pixel->colorspace == HSLColorspace) ||
(pixel->colorspace == HSBColorspace))
{
- (void) FormatMagickString(component,MaxTextExtent,"%.15g%%",
+ (void) FormatMagickString(component,MaxTextExtent,"%g%%",
(double) (100.0*QuantumScale*color));
(void) ConcatenateMagickString(tuple,component,MaxTextExtent);
return;
}
if (pixel->depth > 8)
{
- (void) FormatMagickString(component,MaxTextExtent,"%.15g%%",
+ (void) FormatMagickString(component,MaxTextExtent,"%g%%",
(double) (100.0*QuantumScale*color));
(void) ConcatenateMagickString(tuple,component,MaxTextExtent);
return;
}
(void) FormatMagickString(component,MaxTextExtent,"%d",
- ScaleQuantumToChar(RoundToQuantum(color)));
+ ScaleQuantumToChar(ClampToQuantum(color)));
(void) ConcatenateMagickString(tuple,component,MaxTextExtent);
}
\f
% The format of the GetColorInfoList function is:
%
% const ColorInfo **GetColorInfoList(const char *pattern,
-% unsigned long *number_colors,ExceptionInfo *exception)
+% size_t *number_colors,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
#endif
MagickExport const ColorInfo **GetColorInfoList(const char *pattern,
- unsigned long *number_colors,ExceptionInfo *exception)
+ size_t *number_colors,ExceptionInfo *exception)
{
const ColorInfo
**colors;
register const ColorInfo
*p;
- register long
+ register ssize_t
i;
/*
*/
assert(pattern != (char *) NULL);
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",pattern);
- assert(number_colors != (unsigned long *) NULL);
+ assert(number_colors != (size_t *) NULL);
*number_colors=0;
p=GetColorInfo("*",exception);
if (p == (const ColorInfo *) NULL)
UnlockSemaphoreInfo(color_semaphore);
qsort((void *) colors,(size_t) i,sizeof(*colors),ColorInfoCompare);
colors[i]=(ColorInfo *) NULL;
- *number_colors=(unsigned long) i;
+ *number_colors=(size_t) i;
return(colors);
}
\f
%
% The format of the GetColorList function is:
%
-% char **GetColorList(const char *pattern,unsigned long *number_colors,
+% char **GetColorList(const char *pattern,size_t *number_colors,
% ExceptionInfo *exception)
%
% A description of each parameter follows:
#endif
MagickExport char **GetColorList(const char *pattern,
- unsigned long *number_colors,ExceptionInfo *exception)
+ size_t *number_colors,ExceptionInfo *exception)
{
char
**colors;
register const ColorInfo
*p;
- register long
+ register ssize_t
i;
/*
*/
assert(pattern != (char *) NULL);
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",pattern);
- assert(number_colors != (unsigned long *) NULL);
+ assert(number_colors != (size_t *) NULL);
*number_colors=0;
p=GetColorInfo("*",exception);
if (p == (const ColorInfo *) NULL)
UnlockSemaphoreInfo(color_semaphore);
qsort((void *) colors,(size_t) i,sizeof(*colors),ColorCompare);
colors[i]=(char *) NULL;
- *number_colors=(unsigned long) i;
+ *number_colors=(size_t) i;
return(colors);
}
\f
if (pixel->depth > 32)
{
(void) FormatMagickString(component,MaxTextExtent,"%08lX",
- ScaleQuantumToLong(RoundToQuantum(color)));
+ (unsigned long) ScaleQuantumToLong(ClampToQuantum(color)));
(void) ConcatenateMagickString(tuple,component,MaxTextExtent);
return;
}
if (pixel->depth > 16)
{
(void) FormatMagickString(component,MaxTextExtent,"%08X",
- (unsigned int) ScaleQuantumToLong(RoundToQuantum(color)));
+ (unsigned int) ScaleQuantumToLong(ClampToQuantum(color)));
(void) ConcatenateMagickString(tuple,component,MaxTextExtent);
return;
}
if (pixel->depth > 8)
{
(void) FormatMagickString(component,MaxTextExtent,"%04X",
- ScaleQuantumToShort(RoundToQuantum(color)));
+ ScaleQuantumToShort(ClampToQuantum(color)));
(void) ConcatenateMagickString(tuple,component,MaxTextExtent);
return;
}
(void) FormatMagickString(component,MaxTextExtent,"%02X",
- ScaleQuantumToChar(RoundToQuantum(color)));
+ ScaleQuantumToChar(ClampToQuantum(color)));
(void) ConcatenateMagickString(tuple,component,MaxTextExtent);
return;
}
if (color.depth > 8)
{
#define SVGCompliant(component) ((MagickRealType) \
- ScaleCharToQuantum(ScaleQuantumToChar(RoundToQuantum(component))));
+ ScaleCharToQuantum(ScaleQuantumToChar(ClampToQuantum(component))));
MagickStatusType
status;
color.depth=8;
}
(void) ConcatenateMagickString(tuple,MagickOptionToMnemonic(
- MagickColorspaceOptions,(long) color.colorspace),MaxTextExtent);
+ MagickColorspaceOptions,(ssize_t) color.colorspace),MaxTextExtent);
if (color.matte != MagickFalse)
(void) ConcatenateMagickString(tuple,"a",MaxTextExtent);
(void) ConcatenateMagickString(tuple,"(",MaxTextExtent);
beta=1.0;
if (image->matte != MagickFalse)
{
- alpha=(MagickRealType) (QuantumScale*(QuantumRange-p->opacity));
- beta=(MagickRealType) (QuantumScale*(QuantumRange-q->opacity));
+ alpha=(MagickRealType) (QuantumScale*(GetAlphaPixelComponent(p)));
+ beta=(MagickRealType) (QuantumScale*GetAlphaPixelComponent(q));
}
pixel=alpha*p->red-beta*q->red;
distance=pixel*pixel;
% The format of the IsImageSimilar method is:
%
% MagickBooleanType IsImageSimilar(const Image *image,
-% const Image *target_image,long *x_offset,long *y_offset,
+% const Image *target_image,ssize_t *x_offset,ssize_t *y_offset,
% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
*/
MagickExport MagickBooleanType IsImageSimilar(const Image *image,
- const Image *target_image,long *x_offset,long *y_offset,
+ const Image *target_image,ssize_t *x_offset,ssize_t *y_offset,
ExceptionInfo *exception)
{
#define SearchImageText " Searching image... "
- long
+ CacheView
+ *image_view,
+ *target_view;
+
+ ssize_t
j,
y;
*indexes,
*target_indexes;
- register long
+ register ssize_t
i,
x;
- CacheView
- *image_view,
- *target_view;
-
assert(image != (Image *) NULL);
assert(image->signature == MagickSignature);
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
assert(target_image != (Image *) NULL);
assert(target_image->signature == MagickSignature);
- assert(x_offset != (long *) NULL);
- assert(y_offset != (long *) NULL);
+ assert(x_offset != (ssize_t *) NULL);
+ assert(y_offset != (ssize_t *) NULL);
assert(exception != (ExceptionInfo *) NULL);
x=0;
GetMagickPixelPacket(image,&pixel);
GetMagickPixelPacket(image,&target);
image_view=AcquireCacheView(image);
target_view=AcquireCacheView(target_image);
- for (y=(*y_offset); y < (long) image->rows; y++)
+ for (y=(*y_offset); y < (ssize_t) image->rows; y++)
{
- for (x=y == 0 ? *x_offset : 0; x < (long) image->columns; x++)
+ for (x=y == 0 ? *x_offset : 0; x < (ssize_t) image->columns; x++)
{
- for (j=0; j < (long) target_image->rows; j++)
+ for (j=0; j < (ssize_t) target_image->rows; j++)
{
- for (i=0; i < (long) target_image->columns; i++)
+ for (i=0; i < (ssize_t) target_image->columns; i++)
{
p=GetCacheViewVirtualPixels(image_view,x+i,y+j,1,1,exception);
indexes=GetCacheViewVirtualIndexQueue(image_view);
if (IsMagickColorSimilar(&pixel,&target) == MagickFalse)
break;
}
- if (i < (long) target_image->columns)
+ if (i < (ssize_t) target_image->columns)
break;
}
- if (j == (long) target_image->rows)
+ if (j == (ssize_t) target_image->rows)
break;
}
- if (x < (long) image->columns)
+ if (x < (ssize_t) image->columns)
break;
- if ((image->progress_monitor != (MagickProgressMonitor) NULL) &&
- (QuantumTick(y,image->rows) != MagickFalse))
+ if (image->progress_monitor != (MagickProgressMonitor) NULL)
{
- status=image->progress_monitor(SearchImageText,y,image->rows,
- image->client_data);
- if (status == MagickFalse)
- break;
+ MagickBooleanType
+ proceed;
+
+ proceed=SetImageProgress(image,SearchImageText,(MagickOffsetType) y,
+ image->rows);
+ if (proceed == MagickFalse)
+ status=MagickFalse;
}
}
target_view=DestroyCacheView(target_view);
image_view=DestroyCacheView(image_view);
*x_offset=x;
*y_offset=y;
- return(y < (long) image->rows ? MagickTrue : MagickFalse);
+ return(y < (ssize_t) image->rows ? MagickTrue : MagickFalse);
}
\f
/*
fuzz=3.0*MagickMax(p->fuzz,MagickSQ1_2)*MagickMax(q->fuzz,MagickSQ1_2);
alpha=1.0;
if (p->matte != MagickFalse)
- alpha=(MagickRealType) (QuantumScale*(QuantumRange-p->opacity));
+ alpha=(MagickRealType) (QuantumScale*(GetAlphaPixelComponent(p)));
beta=1.0;
if (q->matte != MagickFalse)
- beta=(MagickRealType) (QuantumScale*(QuantumRange-q->opacity));
+ beta=(MagickRealType) (QuantumScale*GetAlphaPixelComponent(q));
if (p->colorspace == CMYKColorspace)
{
alpha*=(MagickRealType) (QuantumScale*(QuantumRange-p->index));
const ColorInfo
**color_info;
- register long
+ register ssize_t
i;
- unsigned long
+ size_t
number_colors;
/*
if (color_info == (const ColorInfo **) NULL)
return(MagickFalse);
path=(const char *) NULL;
- for (i=0; i < (long) number_colors; i++)
+ for (i=0; i < (ssize_t) number_colors; i++)
{
if (color_info[i]->stealth != MagickFalse)
continue;
% The format of the LoadColorList method is:
%
% MagickBooleanType LoadColorList(const char *xml,const char *filename,
-% const unsigned long depth,ExceptionInfo *exception)
+% const size_t depth,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
%
*/
static MagickBooleanType LoadColorList(const char *xml,const char *filename,
- const unsigned long depth,ExceptionInfo *exception)
+ const size_t depth,ExceptionInfo *exception)
{
char
keyword[MaxTextExtent],
}
if (LocaleCompare((char *) keyword,"compliance") == 0)
{
- long
+ ssize_t
compliance;
compliance=color_info->compliance;
MagickStatusType
status;
- register long
+ register ssize_t
i;
/*
}
}
scale=(MagickRealType) ScaleCharToQuantum(1);
- for (i=0; i < (long) (sizeof(ColorMap)/sizeof(*ColorMap)); i++)
+ for (i=0; i < (ssize_t) (sizeof(ColorMap)/sizeof(*ColorMap)); i++)
{
ColorInfo
*color_info;
color_info->path=(char *) "[built-in]";
color_info->name=(char *) p->name;
GetMagickPixelPacket((Image *) NULL,&color_info->color);
- color_info->color.red=scale*p->red;
- color_info->color.green=scale*p->green;
- color_info->color.blue=scale*p->blue;
+ color_info->color.red=scale*GetRedPixelComponent(p);
+ color_info->color.green=scale*GetGreenPixelComponent(p);
+ color_info->color.blue=scale*GetBluePixelComponent(p);
color_info->color.opacity=(MagickRealType) (QuantumRange-QuantumRange*
p->alpha);
color_info->compliance=(ComplianceType) p->compliance;
%
% The format of the QueryColorDatabase method is:
%
-% MagickBooleanType QueryColorDatabase(const char *name,PixelPacket *color,
+% MagickBooleanType QueryColorDatabase(const char *name,
+% const ComplianceType compliance,PixelPacket *color,
% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o name: the color name (e.g. white, blue, yellow).
%
+% o compliance: Adhere to this color standard: SVG, X11, or XPM.
+%
% o color: the red, green, blue, and opacity intensities values of the
% named color in this structure.
%
return(y);
}
-MagickExport MagickBooleanType QueryColorDatabase(const char *name,
- PixelPacket *color,ExceptionInfo *exception)
+MagickExport MagickBooleanType QueryColorCompliance(const char *name,
+ const ComplianceType compliance,PixelPacket *color,ExceptionInfo *exception)
{
MagickBooleanType
status;
MagickPixelPacket
pixel;
- status=QueryMagickColor(name,&pixel,exception);
- color->opacity=RoundToQuantum(pixel.opacity);
+ status=QueryMagickColorCompliance(name,compliance,&pixel,exception);
+ color->opacity=ClampToQuantum(pixel.opacity);
if (pixel.colorspace == CMYKColorspace)
{
- color->red=RoundToQuantum((MagickRealType) (QuantumRange-MagickMin(
+ color->red=ClampToQuantum((MagickRealType) (QuantumRange-MagickMin(
QuantumRange,(MagickRealType) (QuantumScale*pixel.red*(QuantumRange-
pixel.index)+pixel.index))));
- color->green=RoundToQuantum((MagickRealType) (QuantumRange-MagickMin(
+ color->green=ClampToQuantum((MagickRealType) (QuantumRange-MagickMin(
QuantumRange,(MagickRealType) (QuantumScale*pixel.green*(QuantumRange-
pixel.index)+pixel.index))));
- color->blue=RoundToQuantum((MagickRealType) (QuantumRange-MagickMin(
+ color->blue=ClampToQuantum((MagickRealType) (QuantumRange-MagickMin(
QuantumRange,(MagickRealType) (QuantumScale*pixel.blue*(QuantumRange-
pixel.index)+pixel.index))));
return(status);
}
- color->red=RoundToQuantum(pixel.red);
- color->green=RoundToQuantum(pixel.green);
- color->blue=RoundToQuantum(pixel.blue);
+ color->red=ClampToQuantum(pixel.red);
+ color->green=ClampToQuantum(pixel.green);
+ color->blue=ClampToQuantum(pixel.blue);
return(status);
}
\f
% %
% %
% %
+% Q u e r y C o l o r D a t a b a s e %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% QueryColorDatabase() returns the red, green, blue, and opacity intensities
+% for a given color name.
+%
+% The format of the QueryColorDatabase method is:
+%
+% MagickBooleanType QueryColorDatabase(const char *name,PixelPacket *color,
+% ExceptionInfo *exception)
+%
+% A description of each parameter follows:
+%
+% o name: the color name (e.g. white, blue, yellow).
+%
+% o color: the red, green, blue, and opacity intensities values of the
+% named color in this structure.
+%
+% o exception: return any errors or warnings in this structure.
+%
+*/
+MagickExport MagickBooleanType QueryColorDatabase(const char *name,
+ PixelPacket *color,ExceptionInfo *exception)
+{
+ return(QueryColorCompliance(name,AllCompliance,color,exception));
+}
+\f
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
% Q u e r y C o l o r n a m e %
% %
% %
% %
% %
% %
-% Q u e r y M a g i c k C o l o r %
+% Q u e r y M a g i c k C o l o r C o m p l i a n c e %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% QueryMagickColor() returns the red, green, blue, and opacity intensities
-% for a given color name.
+% QueryMagickColorCompliance() returns the red, green, blue, and opacity
+% intensities for a given color name and standards compliance.
%
% The format of the QueryMagickColor method is:
%
% MagickBooleanType QueryMagickColor(const char *name,
-% MagickPixelPacket *color,ExceptionInfo *exception)
+% const ComplianceType compliance,MagickPixelPacket *color,
+% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o name: the color name (e.g. white, blue, yellow).
%
+% o compliance: Adhere to this color standard: SVG, X11, or XPM.
+%
% o color: the red, green, blue, and opacity intensities values of the
% named color in this structure.
%
% o exception: return any errors or warnings in this structure.
%
*/
-MagickExport MagickBooleanType QueryMagickColor(const char *name,
- MagickPixelPacket *color,ExceptionInfo *exception)
+MagickExport MagickBooleanType QueryMagickColorCompliance(const char *name,
+ const ComplianceType compliance,MagickPixelPacket *color,
+ ExceptionInfo *exception)
{
GeometryInfo
geometry_info;
- long
+ ssize_t
type;
MagickRealType
register const ColorInfo
*p;
- register long
+ register ssize_t
i;
/*
QuantumAny
range;
- unsigned long
+ size_t
depth,
n;
pixel.red=pixel.green;
pixel.green=pixel.blue;
pixel.blue=0;
- for (i=(long) (n/3-1); i >= 0; i--)
+ for (i=(ssize_t) (n/3-1); i >= 0; i--)
{
c=(*name++);
pixel.blue<<=4;
pixel.green=pixel.blue;
pixel.blue=pixel.opacity;
pixel.opacity=0;
- for (i=(long) (n/4-1); i >= 0; i--)
+ for (i=(ssize_t) (n/4-1); i >= 0; i--)
{
c=(*name++);
pixel.opacity<<=4;
if ((flags & PercentValue) != 0)
scale=(MagickRealType) (QuantumRange/100.0);
if ((flags & RhoValue) != 0)
- color->red=(MagickRealType) RoundToQuantum(scale*geometry_info.rho);
+ color->red=(MagickRealType) ClampToQuantum(scale*geometry_info.rho);
if ((flags & SigmaValue) != 0)
- color->green=(MagickRealType) RoundToQuantum(scale*geometry_info.sigma);
+ color->green=(MagickRealType) ClampToQuantum(scale*geometry_info.sigma);
if ((flags & XiValue) != 0)
- color->blue=(MagickRealType) RoundToQuantum(scale*geometry_info.xi);
+ color->blue=(MagickRealType) ClampToQuantum(scale*geometry_info.xi);
color->opacity=(MagickRealType) OpaqueOpacity;
if ((flags & PsiValue) != 0)
{
if (color->colorspace == CMYKColorspace)
- color->index=(MagickRealType) RoundToQuantum(scale*
+ color->index=(MagickRealType) ClampToQuantum(scale*
geometry_info.psi);
else
if (color->matte != MagickFalse)
- color->opacity=(MagickRealType) RoundToQuantum((MagickRealType)
+ color->opacity=(MagickRealType) ClampToQuantum((MagickRealType)
(QuantumRange-QuantumRange*geometry_info.psi));
}
if (((flags & ChiValue) != 0) && (color->matte != MagickFalse))
- color->opacity=(MagickRealType) RoundToQuantum((MagickRealType)
+ color->opacity=(MagickRealType) ClampToQuantum((MagickRealType)
(QuantumRange-QuantumRange*geometry_info.chi));
if (LocaleCompare(colorspace,"gray") == 0)
{
color->green=color->red;
color->blue=color->red;
if (((flags & SigmaValue) != 0) && (color->matte != MagickFalse))
- color->opacity=(MagickRealType) RoundToQuantum((MagickRealType)
+ color->opacity=(MagickRealType) ClampToQuantum((MagickRealType)
(QuantumRange-QuantumRange*geometry_info.sigma));
}
if ((LocaleCompare(colorspace,"HSB") == 0) ||
/*
Parse named color.
*/
- p=GetColorInfo(name,exception);
+ p=GetColorCompliance(name,compliance,exception);
if (p == (const ColorInfo *) NULL)
return(MagickFalse);
color->colorspace=RGBColorspace;
% %
% %
% %
+% Q u e r y M a g i c k C o l o r %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% QueryMagickColor() returns the red, green, blue, and opacity intensities
+% for a given color name.
+%
+% The format of the QueryMagickColor method is:
+%
+% MagickBooleanType QueryMagickColor(const char *name,
+% MagickPixelPacket *color,ExceptionInfo *exception)
+%
+% A description of each parameter follows:
+%
+% o name: the color name (e.g. white, blue, yellow).
+%
+% o color: the red, green, blue, and opacity intensities values of the
+% named color in this structure.
+%
+% o exception: return any errors or warnings in this structure.
+%
+*/
+MagickExport MagickBooleanType QueryMagickColor(const char *name,
+ MagickPixelPacket *color,ExceptionInfo *exception)
+{
+ return(QueryMagickColorCompliance(name,AllCompliance,color,exception));
+}
+\f
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
% Q u e r y M a g i c k C o l o r n a m e %
% %
% %
if (compliance == XPMCompliance)
{
pixel.matte=MagickFalse;
- pixel.depth=(unsigned long) MagickMin(1.0*image->depth,16.0);
- GetColorTuple(&pixel,MagickTrue,name);
- return(MagickTrue);
+ pixel.depth=(size_t) MagickMin(1.0*image->depth,16.0);
}
GetColorTuple(&pixel,compliance != SVGCompliance ? MagickTrue : MagickFalse,
name);