MagickCore  7.1.0
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 IlluminantX   0.95047
 
#define IlluminantY   1.0
 
#define IlluminantZ   1.08883
 
#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, const IlluminantType, double *, double *, double *)
 
MagickPrivate void ConvertLCHuvToRGB (const double, const double, const double, const IlluminantType, 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, const IlluminantType, double *, double *, double *)
 
MagickPrivate void ConvertRGBToLCHab (const double, const double, const double, const IlluminantType, double *, double *, double *)
 
MagickPrivate void ConvertRGBToLCHuv (const double, const double, const double, const IlluminantType, 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, const IlluminantType illuminant, double *X, double *Y, double *Z)
 
static void ConvertLuvToXYZ (const double L, const double u, const double v, const IlluminantType illuminant, 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, const IlluminantType illuminant, double *L, double *a, double *b)
 
static void ConvertXYZToLuv (const double X, const double Y, const double Z, const IlluminantType illuminant, 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)
 

Variables

static const PrimaryInfo illuminant_tristimulus []
 

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().

◆ IlluminantX

#define IlluminantX   0.95047

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

◆ IlluminantY

#define IlluminantY   1.0

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

◆ IlluminantZ

#define IlluminantZ   1.08883

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

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 95 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 117 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,
const IlluminantType  illuminant,
double *  X,
double *  Y,
double *  Z 
)
inlinestatic

◆ ConvertLCHabToRGB()

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

◆ ConvertLCHuvToRGB()

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

◆ ConvertLuvToXYZ()

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

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

References CIEEpsilon, CIEK, illuminant_tristimulus, 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 200 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  ,
const IlluminantType  ,
double *  ,
double *  ,
double *   
)

◆ ConvertRGBToLCHab()

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

◆ ConvertRGBToLCHuv()

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

Definition at line 1424 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 244 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 263 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,
const IlluminantType  illuminant,
double *  L,
double *  a,
double *  b 
)
inlinestatic

◆ ConvertXYZToLuv()

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

◆ ConvertXYZToProPhoto()

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

Definition at line 338 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   
)

Variable Documentation

◆ illuminant_tristimulus

const PrimaryInfo illuminant_tristimulus[]
static
Initial value:
=
{
{ 1.09850, 1.00000, 0.35585 },
{ 0.99072, 1.00000, 0.85223 },
{ 0.98074, 1.00000, 1.18232 },
{ 0.96422, 1.00000, 0.82521 },
{ 0.95682, 1.00000, 0.92149 },
{ 0.95047, 1.00000, 1.08883 },
{ 0.94972, 1.00000, 1.22638 },
{ 1.00000, 1.00000, 1.00000 },
{ 0.99186, 1.00000, 0.67393 },
{ 0.95041, 1.00000, 1.08747 },
{ 1.00962, 1.00000, 0.64350 }
}

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

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