18 #ifndef _MAGICKCORE_PIXEL_ACCESSOR_H
19 #define _MAGICKCORE_PIXEL_ACCESSOR_H
21 #if defined(__cplusplus) || defined(c_plusplus)
29 #define ClampPixelRed(pixel) ClampToQuantum((pixel)->red)
30 #define ClampPixelGreen(pixel) ClampToQuantum((pixel)->green)
31 #define ClampPixelBlue(pixel) ClampToQuantum((pixel)->blue)
32 #define ClampPixelIndex(indexes) ClampToQuantum(*(indexes))
33 #define ClampPixelOpacity(pixel) ClampToQuantum((pixel)->opacity)
34 #define GetPixela(pixel) ((pixel)->green)
35 #define GetPixelb(pixel) ((pixel)->blue)
36 #define GetPixelAlpha(pixel) (QuantumRange-(pixel)->opacity)
37 #define GetPixelBlack(indexes) (*(indexes))
38 #define GetPixelBlue(pixel) ((pixel)->blue)
39 #define GetPixelCb(pixel) ((pixel)->green)
40 #define GetPixelCr(pixel) ((pixel)->blue)
41 #define GetPixelCyan(pixel) ((pixel)->red)
42 #define GetPixelGray(pixel) ((pixel)->red)
43 #define GetPixelGreen(pixel) ((pixel)->green)
44 #define GetPixelIndex(indexes) (*(indexes))
45 #define GetPixelL(pixel) ((pixel)->red)
46 #define GetPixelMagenta(pixel) ((pixel)->green)
47 #define GetPixelNext(pixel) ((pixel)+1)
48 #define GetPixelOpacity(pixel) ((pixel)->opacity)
49 #define GetPixelRed(pixel) ((pixel)->red)
50 #define GetPixelRGB(pixel,packet) \
52 (packet)->red=GetPixelRed((pixel)); \
53 (packet)->green=GetPixelGreen((pixel)); \
54 (packet)->blue=GetPixelBlue((pixel)); \
56 #define GetPixelRGBO(pixel,packet) \
58 (packet)->red=GetPixelRed((pixel)); \
59 (packet)->green=GetPixelGreen((pixel)); \
60 (packet)->blue=GetPixelBlue((pixel)); \
61 (packet)->opacity=GetPixelOpacity((pixel)); \
63 #define GetPixelY(pixel) ((pixel)->red)
64 #define GetPixelYellow(pixel) ((pixel)->blue)
65 #define SetPixela(pixel,value) ((pixel)->green=(Quantum) (value))
66 #define SetPixelAlpha(pixel,value) \
67 ((pixel)->opacity=(Quantum) (QuantumRange-(value)))
68 #define SetPixelb(pixel,value) ((pixel)->blue=(Quantum) (value))
69 #define SetPixelBlack(indexes,value) (*(indexes)=(Quantum) (value))
70 #define SetPixelBlue(pixel,value) ((pixel)->blue=(Quantum) (value))
71 #define SetPixelCb(pixel,value) ((pixel)->green=(Quantum) (value))
72 #define SetPixelCr(pixel,value) ((pixel)->blue=(Quantum) (value))
73 #define SetPixelCyan(pixel,value) ((pixel)->red=(Quantum) (value))
74 #define SetPixelGray(pixel,value) \
75 ((pixel)->red=(pixel)->green=(pixel)->blue=(Quantum) (value))
76 #define SetPixelGreen(pixel,value) ((pixel)->green=(Quantum) (value))
77 #define SetPixelIndex(indexes,value) (*(indexes)=(IndexPacket) (value))
78 #define SetPixelL(pixel,value) ((pixel)->red=(Quantum) (value))
79 #define SetPixelMagenta(pixel,value) ((pixel)->green=(Quantum) (value))
80 #define SetPixelOpacity(pixel,value) \
81 ((pixel)->opacity=(Quantum) (value))
82 #define SetPixelRed(pixel,value) ((pixel)->red=(Quantum) (value))
83 #define SetPixelRgb(pixel,packet) \
85 SetPixelRed(pixel,(packet)->red); \
86 SetPixelGreen(pixel,(packet)->green); \
87 SetPixelBlue(pixel,(packet)->blue); \
89 #define SetPixelRGBA(pixel,packet) \
91 SetPixelRed(pixel,(packet)->red); \
92 SetPixelGreen(pixel,(packet)->green); \
93 SetPixelBlue(pixel,(packet)->blue); \
94 SetPixelAlpha(pixel,(QuantumRange-(packet)->opacity)); \
96 #define SetPixelRGBO(pixel,packet) \
98 SetPixelRed(pixel,(packet)->red); \
99 SetPixelGreen(pixel,(packet)->green); \
100 SetPixelBlue(pixel,(packet)->blue); \
101 SetPixelOpacity(pixel,(packet)->opacity); \
103 #define SetPixelYellow(pixel,value) ((pixel)->blue=(Quantum) (value))
104 #define SetPixelY(pixel,value) ((pixel)->red=(Quantum) (value))
108 return(x < 0.0f ? -x : x);
116 return(0.21267f*pixel->red+0.71516f*pixel->green+0.07217f*pixel->blue);
130 return(0.21267f*pixel->red+0.71516f*pixel->green+0.07217f*pixel->blue);
134 return(0.21267f*red+0.71516f*green+0.07217f*blue);
163 return(
ClampToQuantum(0.298839*red+0.586811*green+0.114350*blue));
166 #if defined(__cplusplus) || defined(c_plusplus)