double luminosity_ )
: Color ()
{
- Quantum red, green, blue;
+ double red, green, blue;
ConvertHSLToRGB ( hue_,
saturation_,
hue_val = hue_;
- Quantum red, green, blue;
+ double red, green, blue;
ConvertHSLToRGB ( hue_val,
saturation_val,
luminosity_val,
saturation_val = saturation_;
- Quantum red, green, blue;
+ double red, green, blue;
ConvertHSLToRGB ( hue_val,
saturation_val,
luminosity_val,
luminosity_val = luminosity_;
- Quantum red, green, blue;
+ double red, green, blue;
ConvertHSLToRGB ( hue_val,
saturation_val,
luminosity_val,
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- Quantum
+ double
blue,
green,
red;
saturation=(double) (QuantumScale*GetPixelGreen(image,q));
brightness=(double) (QuantumScale*GetPixelBlue(image,q));
ConvertHSBToRGB(hue,saturation,brightness,&red,&green,&blue);
- SetPixelRed(image,red,q);
- SetPixelGreen(image,green,q);
- SetPixelBlue(image,blue,q);
+ SetPixelRed(image,ClampToQuantum(red),q);
+ SetPixelGreen(image,ClampToQuantum(green),q);
+ SetPixelBlue(image,ClampToQuantum(blue),q);
q+=GetPixelChannels(image);
}
sync=SyncCacheViewAuthenticPixels(image_view,exception);
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- Quantum
+ double
blue,
green,
red;
saturation=(double) (QuantumScale*GetPixelGreen(image,q));
lightness=(double) (QuantumScale*GetPixelBlue(image,q));
ConvertHSLToRGB(hue,saturation,lightness,&red,&green,&blue);
- SetPixelRed(image,red,q);
- SetPixelGreen(image,green,q);
- SetPixelBlue(image,blue,q);
+ SetPixelRed(image,ClampToQuantum(red),q);
+ SetPixelGreen(image,ClampToQuantum(green),q);
+ SetPixelBlue(image,ClampToQuantum(blue),q);
q+=GetPixelChannels(image);
}
sync=SyncCacheViewAuthenticPixels(image_view,exception);
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- Quantum
+ double
blue,
green,
red;
whiteness=(double) (QuantumScale*GetPixelGreen(image,q));
blackness=(double) (QuantumScale*GetPixelBlue(image,q));
ConvertHWBToRGB(hue,whiteness,blackness,&red,&green,&blue);
- SetPixelRed(image,red,q);
- SetPixelGreen(image,green,q);
- SetPixelBlue(image,blue,q);
+ SetPixelRed(image,ClampToQuantum(red),q);
+ SetPixelGreen(image,ClampToQuantum(green),q);
+ SetPixelBlue(image,ClampToQuantum(blue),q);
q+=GetPixelChannels(image);
}
sync=SyncCacheViewAuthenticPixels(image_view,exception);
%
*/
-static void Contrast(const int sign,Quantum *red,Quantum *green,Quantum *blue)
+static void Contrast(const int sign,double *red,double *green,double *blue)
{
double
brightness,
/*
Enhance contrast: dark color become darker, light color become lighter.
*/
- assert(red != (Quantum *) NULL);
- assert(green != (Quantum *) NULL);
- assert(blue != (Quantum *) NULL);
+ assert(red != (double *) NULL);
+ assert(green != (double *) NULL);
+ assert(blue != (double *) NULL);
hue=0.0;
saturation=0.0;
brightness=0.0;
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- Quantum
+ double
blue,
green,
red;
*/
static void ModulateHSB(const double percent_hue,
- const double percent_saturation,const double percent_brightness,
- Quantum *red,Quantum *green,Quantum *blue)
+ const double percent_saturation,const double percent_brightness,double *red,
+ double *green,double *blue)
{
double
brightness,
/*
Increase or decrease color brightness, saturation, or hue.
*/
- assert(red != (Quantum *) NULL);
- assert(green != (Quantum *) NULL);
- assert(blue != (Quantum *) NULL);
+ assert(red != (double *) NULL);
+ assert(green != (double *) NULL);
+ assert(blue != (double *) NULL);
ConvertRGBToHSB(*red,*green,*blue,&hue,&saturation,&brightness);
hue+=0.5*(0.01*percent_hue-1.0);
while (hue < 0.0)
}
static void ModulateHSL(const double percent_hue,
- const double percent_saturation,const double percent_lightness,
- Quantum *red,Quantum *green,Quantum *blue)
+ const double percent_saturation,const double percent_lightness,double *red,
+ double *green,double *blue)
{
double
hue,
/*
Increase or decrease color lightness, saturation, or hue.
*/
- assert(red != (Quantum *) NULL);
- assert(green != (Quantum *) NULL);
- assert(blue != (Quantum *) NULL);
+ assert(red != (double *) NULL);
+ assert(green != (double *) NULL);
+ assert(blue != (double *) NULL);
ConvertRGBToHSL(*red,*green,*blue,&hue,&saturation,&lightness);
hue+=0.5*(0.01*percent_hue-1.0);
while (hue < 0.0)
ConvertHSLToRGB(hue,saturation,lightness,red,green,blue);
}
-static void ModulateHWB(const double percent_hue,const double percent_whiteness, const double percent_blackness,Quantum *red,Quantum *green,Quantum *blue)
+static void ModulateHWB(const double percent_hue,const double percent_whiteness, const double percent_blackness,double *red,double *green,double *blue)
{
double
blackness,
/*
Increase or decrease color blackness, whiteness, or hue.
*/
- assert(red != (Quantum *) NULL);
- assert(green != (Quantum *) NULL);
- assert(blue != (Quantum *) NULL);
+ assert(red != (double *) NULL);
+ assert(green != (double *) NULL);
+ assert(blue != (double *) NULL);
ConvertRGBToHWB(*red,*green,*blue,&hue,&whiteness,&blackness);
hue+=0.5*(0.01*percent_hue-1.0);
while (hue < 0.0)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
- Quantum
+ double
blue,
green,
red;
break;
}
}
- SetPixelRed(image,red,q);
- SetPixelGreen(image,green,q);
- SetPixelBlue(image,blue,q);
+ SetPixelRed(image,ClampToQuantum(red),q);
+ SetPixelGreen(image,ClampToQuantum(green),q);
+ SetPixelBlue(image,ClampToQuantum(blue),q);
q+=GetPixelChannels(image);
}
if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
GetOptimalKernelWidth2D(const double,const double);
extern MagickPrivate void
- ConvertHSBToRGB(const double,const double,const double,Quantum *,Quantum *,
- Quantum *),
- ConvertHWBToRGB(const double,const double,const double,Quantum *,Quantum *,
- Quantum *),
- ConvertRGBToHSB(const Quantum,const Quantum,const Quantum,double *,double *,
+ ConvertHSBToRGB(const double,const double,const double,double *,double *,
double *),
- ConvertRGBToHWB(const Quantum,const Quantum,const Quantum,double *,double *,
+ ConvertHWBToRGB(const double,const double,const double,double *,double *,
+ double *),
+ ConvertRGBToHSB(const double,const double,const double,double *,double *,
+ double *),
+ ConvertRGBToHWB(const double,const double,const double,double *,double *,
double *);
#if defined(__cplusplus) || defined(c_plusplus)
% The format of the ConvertHSBToRGBImage method is:
%
% void ConvertHSBToRGB(const double hue,const double saturation,
-% const double brightness,Quantum *red,Quantum *green,Quantum *blue)
+% const double brightness,double *red,double *green,double *blue)
%
% A description of each parameter follows:
%
%
*/
MagickPrivate void ConvertHSBToRGB(const double hue,const double saturation,
- const double brightness,Quantum *red,Quantum *green,Quantum *blue)
+ const double brightness,double *red,double *green,double *blue)
{
MagickRealType
f,
/*
Convert HSB to RGB colorspace.
*/
- assert(red != (Quantum *) NULL);
- assert(green != (Quantum *) NULL);
- assert(blue != (Quantum *) NULL);
+ assert(red != (double *) NULL);
+ assert(green != (double *) NULL);
+ assert(blue != (double *) NULL);
if (saturation == 0.0)
{
*red=ClampToQuantum((MagickRealType) QuantumRange*brightness);
% The format of the ConvertHSLToRGBImage method is:
%
% void ConvertHSLToRGB(const double hue,const double saturation,
-% const double lightness,Quantum *red,Quantum *green,Quantum *blue)
+% const double lightness,double *red,double *green,double *blue)
%
% A description of each parameter follows:
%
}
MagickExport void ConvertHSLToRGB(const double hue,const double saturation,
- const double lightness,Quantum *red,Quantum *green,Quantum *blue)
+ const double lightness,double *red,double *green,double *blue)
{
MagickRealType
b,
/*
Convert HSL to RGB colorspace.
*/
- assert(red != (Quantum *) NULL);
- assert(green != (Quantum *) NULL);
- assert(blue != (Quantum *) NULL);
+ assert(red != (double *) NULL);
+ assert(green != (double *) NULL);
+ assert(blue != (double *) NULL);
if (saturation == 0)
{
*red=ClampToQuantum((MagickRealType) QuantumRange*lightness);
% The format of the ConvertHWBToRGBImage method is:
%
% void ConvertHWBToRGB(const double hue,const double whiteness,
-% const double blackness,Quantum *red,Quantum *green,Quantum *blue)
+% const double blackness,double *red,double *green,double *blue)
%
% A description of each parameter follows:
%
%
*/
MagickPrivate void ConvertHWBToRGB(const double hue,const double whiteness,
- const double blackness,Quantum *red,Quantum *green,Quantum *blue)
+ const double blackness,double *red,double *green,double *blue)
{
MagickRealType
b,
/*
Convert HWB to RGB colorspace.
*/
- assert(red != (Quantum *) NULL);
- assert(green != (Quantum *) NULL);
- assert(blue != (Quantum *) NULL);
+ assert(red != (double *) NULL);
+ assert(green != (double *) NULL);
+ assert(blue != (double *) NULL);
v=1.0-blackness;
if (hue == 0.0)
{
%
% The format of the ConvertRGBToHSB method is:
%
-% void ConvertRGBToHSB(const Quantum red,const Quantum green,
-% const Quantum blue,double *hue,double *saturation,double *brightness)
+% void ConvertRGBToHSB(const double red,const double green,
+% const double blue,double *hue,double *saturation,double *brightness)
%
% A description of each parameter follows:
%
% component of the HSB color space.
%
*/
-MagickPrivate void ConvertRGBToHSB(const Quantum red,const Quantum green,
- const Quantum blue,double *hue,double *saturation,double *brightness)
+MagickPrivate void ConvertRGBToHSB(const double red,const double green,
+ const double blue,double *hue,double *saturation,double *brightness)
{
MagickRealType
delta,
%
% The format of the ConvertRGBToHSL method is:
%
-% void ConvertRGBToHSL(const Quantum red,const Quantum green,
-% const Quantum blue,double *hue,double *saturation,double *lightness)
+% void ConvertRGBToHSL(const double red,const double green,
+% const double blue,double *hue,double *saturation,double *lightness)
%
% A description of each parameter follows:
%
return(y);
}
-MagickExport void ConvertRGBToHSL(const Quantum red,const Quantum green,
- const Quantum blue,double *hue,double *saturation,double *lightness)
+MagickExport void ConvertRGBToHSL(const double red,const double green,
+ const double blue,double *hue,double *saturation,double *lightness)
{
MagickRealType
b,
%
% The format of the ConvertRGBToHWB method is:
%
-% void ConvertRGBToHWB(const Quantum red,const Quantum green,
-% const Quantum blue,double *hue,double *whiteness,double *blackness)
+% void ConvertRGBToHWB(const double red,const double green,
+% const double blue,double *hue,double *whiteness,double *blackness)
%
% A description of each parameter follows:
%
% component of the HWB color space.
%
*/
-MagickPrivate void ConvertRGBToHWB(const Quantum red,const Quantum green,
- const Quantum blue,double *hue,double *whiteness,double *blackness)
+MagickPrivate void ConvertRGBToHWB(const double red,const double green,
+ const double blue,double *hue,double *whiteness,double *blackness)
{
long
i;
ExpandAffine(const AffineMatrix *);
extern MagickExport void
- ConvertHSLToRGB(const double,const double,const double,Quantum *,Quantum *,
- Quantum *),
- ConvertRGBToHSL(const Quantum,const Quantum,const Quantum,double *,double *,
+ ConvertHSLToRGB(const double,const double,const double,double *,double *,
+ double *),
+ ConvertRGBToHSL(const double,const double,const double,double *,double *,
double *);
#if defined(__cplusplus) || defined(c_plusplus)
#include <magick/image-private.h>
#include <magick/quantum-private.h>
-static inline MagickPixelPacket *CloneMagickPixelPacket(
- const MagickPixelPacket *pixel)
+static inline MagickPixelInfo *CloneMagickPixelInfo(
+ const MagickPixelInfo *pixel)
{
- MagickPixelPacket
+ MagickPixelInfo
*clone_pixel;
- clone_pixel=(MagickPixelPacket *) AcquireAlignedMemory(1,
+ clone_pixel=(MagickPixelInfo *) AcquireAlignedMemory(1,
sizeof(*clone_pixel));
- if (clone_pixel == (MagickPixelPacket *) NULL)
+ if (clone_pixel == (MagickPixelInfo *) NULL)
ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
*clone_pixel=(*pixel);
return(clone_pixel);
}
-static inline MagickBooleanType IsGrayPixel(const PixelPacket *pixel)
+static inline MagickBooleanType IsGrayPixel(const PixelInfo *pixel)
{
#if !defined(MAGICKCORE_HDRI_SUPPORT)
if ((GetPixelRed(pixel) == GetPixelGreen(pixel)) &&
return(MagickFalse);
}
-static inline MagickBooleanType IsMonochromePixel(const PixelPacket *pixel)
+static inline MagickBooleanType IsMonochromePixel(const PixelInfo *pixel)
{
#if !defined(MAGICKCORE_HDRI_SUPPORT)
if (((GetPixelRed(pixel) == 0) ||
return(MagickFalse);
}
-static inline void SetMagickPixelPacket(const Image *image,
- const PixelPacket *color,const IndexPacket *index,MagickPixelPacket *pixel)
+static inline void SetMagickPixelInfo(const Image *image,
+ const PixelInfo *color,const IndexPacket *index,MagickPixelInfo *pixel)
{
pixel->red=(MagickRealType) GetPixelRed(color);
pixel->green=(MagickRealType) GetPixelGreen(color);
pixel->index=(MagickRealType) GetPixelIndex(index);
}
-static inline void SetMagickPixelPacketBias(const Image *image,
- MagickPixelPacket *pixel)
+static inline void SetMagickPixelInfoBias(const Image *image,
+ MagickPixelInfo *pixel)
{
/*
Obsoleted by MorphologyApply().
pixel->index=image->bias;
}
-static inline void SetPixelPacket(const Image *image,
- const MagickPixelPacket *pixel,PixelPacket *color,IndexPacket *index)
+static inline void SetPixelInfo(const Image *image,
+ const MagickPixelInfo *pixel,PixelInfo *color,IndexPacket *index)
{
SetPixelRed(color,ClampToQuantum(pixel->red));
SetPixelGreen(color,ClampToQuantum(pixel->green));
size_t
depth;
- MagickRealType
+ MagickSizeType
+ count;
+
+ double
red,
green,
blue,
- alpha,
black,
+ alpha,
index;
} PixelInfo;
typedef struct _PixelPacket
{
- Quantum
+ ClassType
+ storage_class;
+
+ ColorspaceType
+ colorspace;
+
+ MagickBooleanType
+ matte;
+
+ double
+ fuzz;
+
+ size_t
+ depth;
+
+ MagickSizeType
+ count;
+
+ double
red,
green,
blue,
- alpha,
black,
+ alpha,
index;
-
- MagickSizeType
- count;
} PixelPacket;
typedef struct _CacheView
WandExport void PixelSetHSL(PixelWand *wand,const double hue,
const double saturation,const double lightness)
{
- Quantum
+ double
blue,
green,
red;