MagickCore  7.0.10
gem-private.h File Reference
Include dependency graph for gem-private.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define D65X   0.950456
 
#define D65Y   1.0
 
#define D65Z   1.088754
 
#define CIEEpsilon   (216.0/24389.0)
 
#define CIEK   (24389.0/27.0)
 

Functions

MagickPrivate double GenerateDifferentialNoise (RandomInfo *, const Quantum, const NoiseType, const double)
 
MagickPrivate size_t GetOptimalKernelWidth (const double, const double)
 
MagickPrivate size_t GetOptimalKernelWidth1D (const double, const double)
 
MagickPrivate size_t GetOptimalKernelWidth2D (const double, const double)
 
MagickPrivate void ConvertHCLToRGB (const double, const double, const double, double *, double *, double *)
 
MagickPrivate void ConvertHCLpToRGB (const double, const double, const double, double *, double *, double *)
 
MagickPrivate void ConvertHSBToRGB (const double, const double, const double, double *, double *, double *)
 
MagickPrivate void ConvertHSIToRGB (const double, const double, const double, double *, double *, double *)
 
MagickPrivate void ConvertHSVToRGB (const double, const double, const double, double *, double *, double *)
 
MagickPrivate void ConvertHWBToRGB (const double, const double, const double, double *, double *, double *)
 
MagickPrivate void ConvertLCHabToRGB (const double, const double, const double, double *, double *, double *)
 
MagickPrivate void ConvertLCHuvToRGB (const double, const double, const double, double *, double *, double *)
 
MagickPrivate void ConvertRGBToHCL (const double, const double, const double, double *, double *, double *)
 
MagickPrivate void ConvertRGBToHCLp (const double, const double, const double, double *, double *, double *)
 
MagickPrivate void ConvertRGBToHSB (const double, const double, const double, double *, double *, double *)
 
MagickPrivate void ConvertRGBToHSI (const double, const double, const double, double *, double *, double *)
 
MagickPrivate void ConvertRGBToHSV (const double, const double, const double, double *, double *, double *)
 
MagickPrivate void ConvertRGBToHWB (const double, const double, const double, double *, double *, double *)
 
MagickPrivate void ConvertRGBToLab (const double, const double, const double, double *, double *, double *)
 
MagickPrivate void ConvertRGBToLCHab (const double, const double, const double, double *, double *, double *)
 
MagickPrivate void ConvertRGBToLCHuv (const double, const double, const double, double *, double *, double *)
 
static void ConvertAdobe98ToXYZ (const double red, const double green, const double blue, double *X, double *Y, double *Z)
 
static void ConvertDisplayP3ToXYZ (const double red, const double green, const double blue, double *X, double *Y, double *Z)
 
static void ConvertLabToXYZ (const double L, const double a, const double b, double *X, double *Y, double *Z)
 
static void ConvertLuvToXYZ (const double L, const double u, const double v, double *X, double *Y, double *Z)
 
static void ConvertProPhotoToXYZ (const double red, const double green, const double blue, double *X, double *Y, double *Z)
 
static void ConvertRGBToXYZ (const double red, const double green, const double blue, double *X, double *Y, double *Z)
 
static void ConvertXYZToAdobe98 (const double X, const double Y, const double Z, double *red, double *green, double *blue)
 
static void ConvertXYZToDisplayP3 (const double X, const double Y, const double Z, double *red, double *green, double *blue)
 
static void ConvertXYZToLab (const double X, const double Y, const double Z, double *L, double *a, double *b)
 
static void ConvertXYZToLuv (const double X, const double Y, const double Z, double *L, double *u, double *v)
 
static void ConvertXYZToProPhoto (const double X, const double Y, const double Z, double *red, double *green, double *blue)
 
static void ConvertXYZToRGB (const double X, const double Y, const double Z, double *red, double *green, double *blue)
 

Macro Definition Documentation

◆ CIEEpsilon

#define CIEEpsilon   (216.0/24389.0)

Definition at line 31 of file gem-private.h.

Referenced by ConvertLabToXYZ(), ConvertLuvToXYZ(), ConvertXYZToLab(), and ConvertXYZToLuv().

◆ CIEK

#define CIEK   (24389.0/27.0)

Definition at line 32 of file gem-private.h.

Referenced by ConvertLabToXYZ(), ConvertLuvToXYZ(), ConvertXYZToLab(), and ConvertXYZToLuv().

◆ D65X

#define D65X   0.950456

Definition at line 28 of file gem-private.h.

Referenced by ConvertLabToXYZ(), ConvertLuvToXYZ(), ConvertXYZToLab(), and ConvertXYZToLuv().

◆ D65Y

#define D65Y   1.0

Definition at line 29 of file gem-private.h.

Referenced by ConvertLabToXYZ(), ConvertLuvToXYZ(), ConvertXYZToLab(), and ConvertXYZToLuv().

◆ D65Z

#define D65Z   1.088754

Definition at line 30 of file gem-private.h.

Referenced by ConvertLabToXYZ(), ConvertLuvToXYZ(), ConvertXYZToLab(), and ConvertXYZToLuv().

Function Documentation

◆ ConvertAdobe98ToXYZ()

static void ConvertAdobe98ToXYZ ( const double  red,
const double  green,
const double  blue,
double *  X,
double *  Y,
double *  Z 
)
inlinestatic

Definition at line 79 of file gem-private.h.

References DecodePixelGamma(), and QuantumScale.

Referenced by ConvertAdobe98ToRGB().

◆ ConvertDisplayP3ToXYZ()

static void ConvertDisplayP3ToXYZ ( const double  red,
const double  green,
const double  blue,
double *  X,
double *  Y,
double *  Z 
)
inlinestatic

Definition at line 101 of file gem-private.h.

References DecodePixelGamma(), and QuantumScale.

Referenced by ConvertDisplayP3ToRGB().

◆ ConvertHCLpToRGB()

MagickPrivate void ConvertHCLpToRGB ( const double  ,
const double  ,
const double  ,
double *  ,
double *  ,
double *   
)

Referenced by ModulateHCLp(), and TransformsRGBImage().

◆ ConvertHCLToRGB()

MagickPrivate void ConvertHCLToRGB ( const double  ,
const double  ,
const double  ,
double *  ,
double *  ,
double *   
)

◆ ConvertHSBToRGB()

MagickPrivate void ConvertHSBToRGB ( const double  ,
const double  ,
const double  ,
double *  ,
double *  ,
double *   
)

◆ ConvertHSIToRGB()

MagickPrivate void ConvertHSIToRGB ( const double  ,
const double  ,
const double  ,
double *  ,
double *  ,
double *   
)

Referenced by ModulateHSI(), and TransformsRGBImage().

◆ ConvertHSVToRGB()

MagickPrivate void ConvertHSVToRGB ( const double  ,
const double  ,
const double  ,
double *  ,
double *  ,
double *   
)

◆ ConvertHWBToRGB()

MagickPrivate void ConvertHWBToRGB ( const double  ,
const double  ,
const double  ,
double *  ,
double *  ,
double *   
)

◆ ConvertLabToXYZ()

static void ConvertLabToXYZ ( const double  L,
const double  a,
const double  b,
double *  X,
double *  Y,
double *  Z 
)
inlinestatic

Definition at line 123 of file gem-private.h.

References CIEEpsilon, CIEK, D65X, D65Y, and D65Z.

Referenced by ConvertLabToRGB(), and ConvertLCHabToXYZ().

◆ ConvertLCHabToRGB()

MagickPrivate void ConvertLCHabToRGB ( const double  ,
const double  ,
const double  ,
double *  ,
double *  ,
double *   
)

◆ ConvertLCHuvToRGB()

MagickPrivate void ConvertLCHuvToRGB ( const double  ,
const double  ,
const double  ,
double *  ,
double *  ,
double *   
)

◆ ConvertLuvToXYZ()

static void ConvertLuvToXYZ ( const double  L,
const double  u,
const double  v,
double *  X,
double *  Y,
double *  Z 
)
inlinestatic

Definition at line 154 of file gem-private.h.

References CIEEpsilon, CIEK, D65X, D65Y, D65Z, and PerceptibleReciprocal().

Referenced by ConvertLCHuvToXYZ(), and ConvertLuvToRGB().

◆ ConvertProPhotoToXYZ()

static void ConvertProPhotoToXYZ ( const double  red,
const double  green,
const double  blue,
double *  X,
double *  Y,
double *  Z 
)
inlinestatic

Definition at line 175 of file gem-private.h.

References DecodePixelGamma(), and QuantumScale.

Referenced by ConvertProPhotoToRGB().

◆ ConvertRGBToHCL()

MagickPrivate void ConvertRGBToHCL ( const double  ,
const double  ,
const double  ,
double *  ,
double *  ,
double *   
)

◆ ConvertRGBToHCLp()

MagickPrivate void ConvertRGBToHCLp ( const double  ,
const double  ,
const double  ,
double *  ,
double *  ,
double *   
)

Referenced by ModulateHCLp(), and sRGBTransformImage().

◆ ConvertRGBToHSB()

MagickPrivate void ConvertRGBToHSB ( const double  ,
const double  ,
const double  ,
double *  ,
double *  ,
double *   
)

◆ ConvertRGBToHSI()

MagickPrivate void ConvertRGBToHSI ( const double  ,
const double  ,
const double  ,
double *  ,
double *  ,
double *   
)

Referenced by ModulateHSI(), and sRGBTransformImage().

◆ ConvertRGBToHSV()

MagickPrivate void ConvertRGBToHSV ( const double  ,
const double  ,
const double  ,
double *  ,
double *  ,
double *   
)

◆ ConvertRGBToHWB()

MagickPrivate void ConvertRGBToHWB ( const double  ,
const double  ,
const double  ,
double *  ,
double *  ,
double *   
)

◆ ConvertRGBToLab()

MagickPrivate void ConvertRGBToLab ( const double  ,
const double  ,
const double  ,
double *  ,
double *  ,
double *   
)

◆ ConvertRGBToLCHab()

MagickPrivate void ConvertRGBToLCHab ( const double  ,
const double  ,
const double  ,
double *  ,
double *  ,
double *   
)

◆ ConvertRGBToLCHuv()

MagickPrivate void ConvertRGBToLCHuv ( const double  ,
const double  ,
const double  ,
double *  ,
double *  ,
double *   
)

Definition at line 1414 of file gem.c.

References ConvertRGBToXYZ(), and ConvertXYZToLCHuv().

Referenced by ModulateLCHuv(), and sRGBTransformImage().

◆ ConvertRGBToXYZ()

static void ConvertRGBToXYZ ( const double  red,
const double  green,
const double  blue,
double *  X,
double *  Y,
double *  Z 
)
inlinestatic

◆ ConvertXYZToAdobe98()

static void ConvertXYZToAdobe98 ( const double  X,
const double  Y,
const double  Z,
double *  red,
double *  green,
double *  blue 
)
inlinestatic

Definition at line 219 of file gem-private.h.

References EncodePixelGamma(), and QuantumRange.

Referenced by ConvertRGBToAdobe98().

◆ ConvertXYZToDisplayP3()

static void ConvertXYZToDisplayP3 ( const double  X,
const double  Y,
const double  Z,
double *  red,
double *  green,
double *  blue 
)
inlinestatic

Definition at line 238 of file gem-private.h.

References EncodePixelGamma(), and QuantumRange.

Referenced by ConvertRGBToDisplayP3().

◆ ConvertXYZToLab()

static void ConvertXYZToLab ( const double  X,
const double  Y,
const double  Z,
double *  L,
double *  a,
double *  b 
)
inlinestatic

Definition at line 257 of file gem-private.h.

References CIEEpsilon, CIEK, D65X, D65Y, and D65Z.

Referenced by ConvertRGBToLab(), and ConvertXYZToLCHab().

◆ ConvertXYZToLuv()

static void ConvertXYZToLuv ( const double  X,
const double  Y,
const double  Z,
double *  L,
double *  u,
double *  v 
)
inlinestatic

Definition at line 285 of file gem-private.h.

References CIEEpsilon, CIEK, D65X, D65Y, D65Z, and PerceptibleReciprocal().

Referenced by ConvertRGBToLuv(), and ConvertXYZToLCHuv().

◆ ConvertXYZToProPhoto()

static void ConvertXYZToProPhoto ( const double  X,
const double  Y,
const double  Z,
double *  red,
double *  green,
double *  blue 
)
inlinestatic

Definition at line 306 of file gem-private.h.

References EncodePixelGamma(), and QuantumRange.

Referenced by ConvertRGBToProPhoto().

◆ ConvertXYZToRGB()

static void ConvertXYZToRGB ( const double  X,
const double  Y,
const double  Z,
double *  red,
double *  green,
double *  blue 
)
inlinestatic

◆ GenerateDifferentialNoise()

◆ GetOptimalKernelWidth()

MagickPrivate size_t GetOptimalKernelWidth ( const double  ,
const double   
)

◆ GetOptimalKernelWidth1D()

MagickPrivate size_t GetOptimalKernelWidth1D ( const double  ,
const double   
)

◆ GetOptimalKernelWidth2D()

MagickPrivate size_t GetOptimalKernelWidth2D ( const double  ,
const double   
)