1 module dmagick.c.fx;
2 
3 import dmagick.c.draw;
4 import dmagick.c.exception;
5 import dmagick.c.image;
6 import dmagick.c.magickType;
7 import dmagick.c.magickVersion;
8 import dmagick.c.morphology;
9 import dmagick.c.pixel;
10 
11 alias ptrdiff_t ssize_t;
12 
13 extern(C)
14 {
15 	/**
16 	 * Select the type of noise to be added to the image.
17 	 */
18 	enum NoiseType
19 	{
20 		UndefinedNoise,              ///
21 		UniformNoise,                /// ditto
22 		GaussianNoise,               /// ditto
23 		MultiplicativeGaussianNoise, /// ditto
24 		ImpulseNoise,                /// ditto
25 		LaplacianNoise,              /// ditto
26 		PoissonNoise,                /// ditto
27 		RandomNoise                  /// ditto
28 	}
29 
30 	Image* AddNoiseImage(const(Image)*, const NoiseType, ExceptionInfo*);
31 	Image* AddNoiseImageChannel(const(Image)*, const ChannelType, const NoiseType, ExceptionInfo*);
32 	Image* BlueShiftImage(const(Image)*, const double, ExceptionInfo*);
33 	Image* CharcoalImage(const(Image)*, const double, const double, ExceptionInfo*);
34 	Image* ColorizeImage(const(Image)*, const(char)*, const PixelPacket, ExceptionInfo*);
35 
36 	static if (MagickLibVersion >= 0x661)
37 	{
38 		Image* ColorMatrixImage(const(Image)*, const(KernelInfo)* kernel, ExceptionInfo*);
39 	}
40 
41 	Image* FxImage(const(Image)*, const(char)*, ExceptionInfo*);
42 	Image* FxImageChannel(const(Image)*, const ChannelType, const(char)*, ExceptionInfo*);
43 	Image* ImplodeImage(const(Image)*, const double, ExceptionInfo*);
44 	Image* MorphImages(const(Image)*, const size_t, ExceptionInfo*);
45 	Image* PolaroidImage(const(Image)*, const(DrawInfo)*, const double, ExceptionInfo*);
46 
47 	static if (MagickLibVersion < 0x661)
48 	{
49 		Image* RecolorImage(const(Image)*, const size_t, const(double)*, ExceptionInfo*);
50 	}
51 
52 	Image* SepiaToneImage(const(Image)*, const double, ExceptionInfo*);
53 	Image* ShadowImage(const(Image)*, const double, const double, const ssize_t, const ssize_t, ExceptionInfo*);
54 	Image* SketchImage(const(Image)*, const double, const double, const double, ExceptionInfo*);
55 	Image* SteganoImage(const(Image)*, const(Image)*, ExceptionInfo*);
56 	Image* StereoImage(const(Image)*, const(Image)*, ExceptionInfo*);
57 	Image* StereoAnaglyphImage(const(Image)*, const(Image)*, const ssize_t, const ssize_t, ExceptionInfo*);
58 	Image* SwirlImage(const(Image)*, double, ExceptionInfo*);
59 	Image* TintImage(const(Image)*, const(char)*, const PixelPacket, ExceptionInfo*);
60 	Image* VignetteImage(const(Image)*, const double, const double, const ssize_t, const ssize_t, ExceptionInfo*);
61 	Image* WaveImage(const(Image)*, const double, const double, ExceptionInfo*);
62 
63 	static if ( MagickLibVersion >= 0x694 )
64 	{
65 		Image* WaveletDenoiseImage(const(Image)*, const double, const double, ExceptionInfo*);
66 	}
67 
68 	MagickBooleanType PlasmaImage(Image*, const(SegmentInfo)*, size_t, size_t);
69 	MagickBooleanType SolarizeImage(Image*, const double);
70 
71 	static if (MagickLibVersion >= 0x680)
72 	{
73 		MagickBooleanType SolarizeImageChannel(Image*, const ChannelType, const double, ExceptionInfo*);
74 	}
75 }