1 module dmagick.c.gem;
2 
3 import dmagick.c.geometry;
4 import dmagick.c.magickType;
5 import dmagick.c.magickVersion;
6 import dmagick.c.fx;
7 import dmagick.c.random;
8 
9 extern(C)
10 {
11 	double ExpandAffine(const(AffineMatrix)*);
12 	double GenerateDifferentialNoise(RandomInfo*, const Quantum, const NoiseType, const MagickRealType);
13 
14 	size_t GetOptimalKernelWidth(const double, const double);
15 	size_t GetOptimalKernelWidth1D(const double, const double);
16 	size_t GetOptimalKernelWidth2D(const double, const double);
17 
18 	static if (MagickLibVersion >= 0x679)
19 	{
20 		void ConvertHCLToRGB(const double, const double, const double, Quantum*, Quantum*, Quantum*);
21 	}
22 
23 	static if (MagickLibVersion >= 0x686)
24 	{
25 		void ConvertHCLpToRGB(const double, const double, const double, Quantum*, Quantum*, Quantum*);
26 		void ConvertHSIToRGB(const double, const double, const double, Quantum*, Quantum*, Quantum*);
27 		void ConvertHSVToRGB(const double, const double, const double, Quantum*, Quantum*, Quantum*);
28 	}
29 
30 	void ConvertHSBToRGB(const double, const double, const double, Quantum*, Quantum*, Quantum*);
31 	void ConvertHSLToRGB(const double, const double, const double, Quantum*, Quantum*, Quantum*);
32 	void ConvertHWBToRGB(const double, const double, const double, Quantum*, Quantum*, Quantum*);
33 
34 	static if ( MagickLibVersion >= 0x685 )
35 	{
36 		void ConvertLCHabToRGB(const double, const double, const double, Quantum*, Quantum*, Quantum*);
37 		void ConvertLCHuvToRGB(const double, const double, const double, Quantum*, Quantum*, Quantum*);
38 	}
39 
40 	static if (MagickLibVersion >= 0x679)
41 	{
42 		void ConvertRGBToHCL(const Quantum, const Quantum, const Quantum, double*, double*, double*);
43 	}
44 
45 	static if (MagickLibVersion >= 0x686)
46 	{
47 		void ConvertRGBToHCLp( const Quantum, const Quantum, const Quantum, double*, double*, double*);
48 		void ConvertRGBToHSI( const Quantum, const Quantum, const Quantum, double*, double*, double*);
49 		void ConvertRGBToHSV( const Quantum, const Quantum, const Quantum, double*, double*, double*);
50 	}
51 
52 	void ConvertRGBToHSB(const Quantum, const Quantum, const Quantum, double*, double*, double*);
53 	void ConvertRGBToHSL(const Quantum, const Quantum, const Quantum, double*, double*, double*);
54 	void ConvertRGBToHWB(const Quantum, const Quantum, const Quantum, double*, double*, double*);
55 
56 	static if ( MagickLibVersion >= 0x685 )
57 	{
58 		void ConvertRGBToLCHab(const Quantum, const Quantum, const Quantum, double*, double*, double*);
59 		void ConvertRGBToLCHuv(const Quantum, const Quantum, const Quantum, double*, double*, double*);
60 	}
61 }