MagickCore 7.1.0
Convert, Edit, Or Compose Bitmap Images
gem.c File Reference
Include dependency graph for gem.c:

Go to the source code of this file.

Macros

#define SigmaUniform   (attenuate*0.015625)
 
#define SigmaGaussian   (attenuate*0.015625)
 
#define SigmaImpulse   (attenuate*0.1)
 
#define SigmaLaplacian   (attenuate*0.0390625)
 
#define SigmaMultiplicativeGaussian   (attenuate*0.5)
 
#define SigmaPoisson   (attenuate*12.5)
 
#define SigmaRandom   (attenuate)
 
#define TauGaussian   (attenuate*0.078125)
 

Functions

MagickPrivate void ConvertHCLToRGB (const double hue, const double chroma, const double luma, double *red, double *green, double *blue)
 
MagickPrivate void ConvertHCLpToRGB (const double hue, const double chroma, const double luma, double *red, double *green, double *blue)
 
MagickPrivate void ConvertHSBToRGB (const double hue, const double saturation, const double brightness, double *red, double *green, double *blue)
 
MagickPrivate void ConvertHSIToRGB (const double hue, const double saturation, const double intensity, double *red, double *green, double *blue)
 
MagickExport void ConvertHSLToRGB (const double hue, const double saturation, const double lightness, double *red, double *green, double *blue)
 
MagickPrivate void ConvertHSVToRGB (const double hue, const double saturation, const double value, double *red, double *green, double *blue)
 
MagickPrivate void ConvertHWBToRGB (const double hue, const double whiteness, const double blackness, double *red, double *green, double *blue)
 
static void ConvertLCHabToXYZ (const double luma, const double chroma, const double hue, const IlluminantType illuminant, double *X, double *Y, double *Z)
 
MagickPrivate void ConvertLCHabToRGB (const double luma, const double chroma, const double hue, const IlluminantType illuminant, double *red, double *green, double *blue)
 
static void ConvertLCHuvToXYZ (const double luma, const double chroma, const double hue, const IlluminantType illuminant, double *X, double *Y, double *Z)
 
MagickPrivate void ConvertLCHuvToRGB (const double luma, const double chroma, const double hue, const IlluminantType illuminant, double *red, double *green, double *blue)
 
MagickPrivate void ConvertRGBToHCL (const double red, const double green, const double blue, double *hue, double *chroma, double *luma)
 
MagickPrivate void ConvertRGBToHCLp (const double red, const double green, const double blue, double *hue, double *chroma, double *luma)
 
MagickPrivate void ConvertRGBToHSB (const double red, const double green, const double blue, double *hue, double *saturation, double *brightness)
 
MagickPrivate void ConvertRGBToHSI (const double red, const double green, const double blue, double *hue, double *saturation, double *intensity)
 
MagickExport void ConvertRGBToHSL (const double red, const double green, const double blue, double *hue, double *saturation, double *lightness)
 
MagickPrivate void ConvertRGBToHSV (const double red, const double green, const double blue, double *hue, double *saturation, double *value)
 
MagickPrivate void ConvertRGBToHWB (const double red, const double green, const double blue, double *hue, double *whiteness, double *blackness)
 
MagickPrivate void ConvertRGBToLab (const double red, const double green, const double blue, const IlluminantType illuminant, double *L, double *a, double *b)
 
static void ConvertXYZToLCHab (const double X, const double Y, const double Z, const IlluminantType illuminant, double *luma, double *chroma, double *hue)
 
MagickPrivate void ConvertRGBToLCHab (const double red, const double green, const double blue, const IlluminantType illuminant, double *luma, double *chroma, double *hue)
 
static void ConvertXYZToLCHuv (const double X, const double Y, const double Z, const IlluminantType illuminant, double *luma, double *chroma, double *hue)
 
MagickPrivate void ConvertRGBToLCHuv (const double red, const double green, const double blue, const IlluminantType illuminant, double *luma, double *chroma, double *hue)
 
MagickExport double ExpandAffine (const AffineMatrix *affine)
 
MagickPrivate double GenerateDifferentialNoise (RandomInfo *random_info, const Quantum pixel, const NoiseType noise_type, const double attenuate)
 
MagickPrivate size_t GetOptimalKernelWidth1D (const double radius, const double sigma)
 
MagickPrivate size_t GetOptimalKernelWidth2D (const double radius, const double sigma)
 
MagickPrivate size_t GetOptimalKernelWidth (const double radius, const double sigma)
 

Macro Definition Documentation

◆ SigmaGaussian

#define SigmaGaussian   (attenuate*0.015625)

◆ SigmaImpulse

#define SigmaImpulse   (attenuate*0.1)

◆ SigmaLaplacian

#define SigmaLaplacian   (attenuate*0.0390625)

◆ SigmaMultiplicativeGaussian

#define SigmaMultiplicativeGaussian   (attenuate*0.5)

◆ SigmaPoisson

#define SigmaPoisson   (attenuate*12.5)

◆ SigmaRandom

#define SigmaRandom   (attenuate)

◆ SigmaUniform

#define SigmaUniform   (attenuate*0.015625)

◆ TauGaussian

#define TauGaussian   (attenuate*0.078125)

Function Documentation

◆ ConvertHCLpToRGB()

MagickPrivate void ConvertHCLpToRGB ( const double  hue,
const double  chroma,
const double  luma,
double *  red,
double *  green,
double *  blue 
)

Definition at line 180 of file gem.c.

References QuantumRange.

◆ ConvertHCLToRGB()

MagickPrivate void ConvertHCLToRGB ( const double  hue,
const double  chroma,
const double  luma,
double *  red,
double *  green,
double *  blue 
)

Definition at line 87 of file gem.c.

References QuantumRange.

◆ ConvertHSBToRGB()

MagickPrivate void ConvertHSBToRGB ( const double  hue,
const double  saturation,
const double  brightness,
double *  red,
double *  green,
double *  blue 
)

Definition at line 285 of file gem.c.

References MagickEpsilon, and QuantumRange.

◆ ConvertHSIToRGB()

MagickPrivate void ConvertHSIToRGB ( const double  hue,
const double  saturation,
const double  intensity,
double *  red,
double *  green,
double *  blue 
)

Definition at line 388 of file gem.c.

References MagickPI, and QuantumRange.

◆ ConvertHSLToRGB()

MagickExport void ConvertHSLToRGB ( const double  hue,
const double  saturation,
const double  lightness,
double *  red,
double *  green,
double *  blue 
)

Definition at line 461 of file gem.c.

References QuantumRange.

Referenced by ModulateHSL(), QueryColorCompliance(), and TransformsRGBImage().

◆ ConvertHSVToRGB()

MagickPrivate void ConvertHSVToRGB ( const double  hue,
const double  saturation,
const double  value,
double *  red,
double *  green,
double *  blue 
)

Definition at line 565 of file gem.c.

References QuantumRange.

◆ ConvertHWBToRGB()

MagickPrivate void ConvertHWBToRGB ( const double  hue,
const double  whiteness,
const double  blackness,
double *  red,
double *  green,
double *  blue 
)

Definition at line 666 of file gem.c.

References CastDoubleToLong(), MagickEpsilon, and QuantumRange.

◆ ConvertLCHabToRGB()

MagickPrivate void ConvertLCHabToRGB ( const double  luma,
const double  chroma,
const double  hue,
const IlluminantType  illuminant,
double *  red,
double *  green,
double *  blue 
)

Definition at line 751 of file gem.c.

References ConvertLCHabToXYZ(), and ConvertXYZToRGB().

◆ ConvertLCHabToXYZ()

static void ConvertLCHabToXYZ ( const double  luma,
const double  chroma,
const double  hue,
const IlluminantType  illuminant,
double *  X,
double *  Y,
double *  Z 
)
inlinestatic

Definition at line 743 of file gem.c.

References ConvertLabToXYZ(), and MagickPI.

Referenced by ConvertLCHabToRGB().

◆ ConvertLCHuvToRGB()

MagickPrivate void ConvertLCHuvToRGB ( const double  luma,
const double  chroma,
const double  hue,
const IlluminantType  illuminant,
double *  red,
double *  green,
double *  blue 
)

Definition at line 807 of file gem.c.

References ConvertLCHuvToXYZ(), and ConvertXYZToRGB().

◆ ConvertLCHuvToXYZ()

static void ConvertLCHuvToXYZ ( const double  luma,
const double  chroma,
const double  hue,
const IlluminantType  illuminant,
double *  X,
double *  Y,
double *  Z 
)
inlinestatic

Definition at line 799 of file gem.c.

References ConvertLuvToXYZ(), and MagickPI.

Referenced by ConvertLCHuvToRGB().

◆ ConvertRGBToHCL()

MagickPrivate void ConvertRGBToHCL ( const double  red,
const double  green,
const double  blue,
double *  hue,
double *  chroma,
double *  luma 
)

Definition at line 855 of file gem.c.

References MagickEpsilon, MagickMax, MagickMin, and QuantumScale.

◆ ConvertRGBToHCLp()

MagickPrivate void ConvertRGBToHCLp ( const double  red,
const double  green,
const double  blue,
double *  hue,
double *  chroma,
double *  luma 
)

Definition at line 916 of file gem.c.

References MagickEpsilon, MagickMax, MagickMin, and QuantumScale.

◆ ConvertRGBToHSB()

MagickPrivate void ConvertRGBToHSB ( const double  red,
const double  green,
const double  blue,
double *  hue,
double *  saturation,
double *  brightness 
)

Definition at line 977 of file gem.c.

References MagickEpsilon, and QuantumScale.

◆ ConvertRGBToHSI()

MagickPrivate void ConvertRGBToHSI ( const double  red,
const double  green,
const double  blue,
double *  hue,
double *  saturation,
double *  intensity 
)

Definition at line 1047 of file gem.c.

References MagickMin, MagickPI, and QuantumScale.

◆ ConvertRGBToHSL()

MagickExport void ConvertRGBToHSL ( const double  red,
const double  green,
const double  blue,
double *  hue,
double *  saturation,
double *  lightness 
)

◆ ConvertRGBToHSV()

MagickPrivate void ConvertRGBToHSV ( const double  red,
const double  green,
const double  blue,
double *  hue,
double *  saturation,
double *  value 
)

Definition at line 1176 of file gem.c.

References MagickEpsilon, MagickMax, MagickMin, PerceptibleReciprocal(), and QuantumScale.

◆ ConvertRGBToHWB()

MagickPrivate void ConvertRGBToHWB ( const double  red,
const double  green,
const double  blue,
double *  hue,
double *  whiteness,
double *  blackness 
)

Definition at line 1245 of file gem.c.

References MagickEpsilon, MagickMax, MagickMin, and QuantumScale.

◆ ConvertRGBToLab()

MagickPrivate void ConvertRGBToLab ( const double  red,
const double  green,
const double  blue,
const IlluminantType  illuminant,
double *  L,
double *  a,
double *  b 
)

Definition at line 1303 of file gem.c.

References ConvertRGBToXYZ(), and ConvertXYZToLab().

◆ ConvertRGBToLCHab()

MagickPrivate void ConvertRGBToLCHab ( const double  red,
const double  green,
const double  blue,
const IlluminantType  illuminant,
double *  luma,
double *  chroma,
double *  hue 
)

Definition at line 1360 of file gem.c.

References ConvertRGBToXYZ(), and ConvertXYZToLCHab().

◆ ConvertRGBToLCHuv()

MagickPrivate void ConvertRGBToLCHuv ( const double  red,
const double  green,
const double  blue,
const IlluminantType  illuminant,
double *  luma,
double *  chroma,
double *  hue 
)

Definition at line 1423 of file gem.c.

References ConvertRGBToXYZ(), and ConvertXYZToLCHuv().

Referenced by ModulateLCHuv(), and sRGBTransformImage().

◆ ConvertXYZToLCHab()

static void ConvertXYZToLCHab ( const double  X,
const double  Y,
const double  Z,
const IlluminantType  illuminant,
double *  luma,
double *  chroma,
double *  hue 
)
inlinestatic

Definition at line 1345 of file gem.c.

References ConvertXYZToLab(), and MagickPI.

Referenced by ConvertRGBToLCHab().

◆ ConvertXYZToLCHuv()

static void ConvertXYZToLCHuv ( const double  X,
const double  Y,
const double  Z,
const IlluminantType  illuminant,
double *  luma,
double *  chroma,
double *  hue 
)
inlinestatic

Definition at line 1408 of file gem.c.

References ConvertXYZToLuv(), and MagickPI.

Referenced by ConvertRGBToLCHuv().

◆ ExpandAffine()

◆ GenerateDifferentialNoise()

◆ GetOptimalKernelWidth()

MagickPrivate size_t GetOptimalKernelWidth ( const double  radius,
const double  sigma 
)

Definition at line 1725 of file gem.c.

References GetOptimalKernelWidth1D().

◆ GetOptimalKernelWidth1D()

MagickPrivate size_t GetOptimalKernelWidth1D ( const double  radius,
const double  sigma 
)

◆ GetOptimalKernelWidth2D()

MagickPrivate size_t GetOptimalKernelWidth2D ( const double  radius,
const double  sigma 
)