18 #ifndef MAGICKCORE_PIXEL_PRIVATE_H
19 #define MAGICKCORE_PIXEL_PRIVATE_H
21 #include "magick/image.h"
22 #include "magick/color.h"
23 #include "magick/image-private.h"
24 #include "magick/memory_.h"
25 #include "magick/pixel-accessor.h"
26 #include "magick/quantum-private.h"
28 #if defined(__cplusplus) || defined(c_plusplus)
32 static inline MagickBooleanType IsGrayPixel(
const PixelPacket *pixel)
34 #if !defined(MAGICKCORE_HDRI_SUPPORT)
35 if ((GetPixelRed(pixel) == GetPixelGreen(pixel)) &&
36 (GetPixelGreen(pixel) == GetPixelBlue(pixel)))
44 alpha=GetPixelRed(pixel)-(double) GetPixelGreen(pixel);
45 beta=GetPixelGreen(pixel)-(double) GetPixelBlue(pixel);
46 if ((fabs(alpha) <= MagickEpsilon) && (fabs(beta) <= MagickEpsilon))
53 static inline MagickBooleanType IsMonochromePixel(
const PixelPacket *pixel)
55 #if !defined(MAGICKCORE_HDRI_SUPPORT)
56 if (((GetPixelRed(pixel) == 0) ||
57 (GetPixelRed(pixel) == QuantumRange)) &&
58 (GetPixelRed(pixel) == GetPixelGreen(pixel)) &&
59 (GetPixelGreen(pixel) == GetPixelBlue(pixel)))
67 alpha=GetPixelRed(pixel)-(double) GetPixelGreen(pixel);
68 beta=GetPixelGreen(pixel)-(double) GetPixelBlue(pixel);
69 if (((fabs((
double) GetPixelRed(pixel)) <= MagickEpsilon) ||
70 (fabs((
double) GetPixelRed(pixel)-QuantumRange) <= MagickEpsilon)) &&
71 (fabs(alpha) <= MagickEpsilon) && (fabs(beta) <= MagickEpsilon))
78 static inline void SetMagickPixelPacket(
const Image *image,
81 pixel->red=(MagickRealType) GetPixelRed(color);
82 pixel->green=(MagickRealType) GetPixelGreen(color);
83 pixel->blue=(MagickRealType) GetPixelBlue(color);
84 pixel->opacity=(MagickRealType) GetPixelOpacity(color);
85 if ((image->colorspace == CMYKColorspace) &&
86 (index != (
const IndexPacket *) NULL))
87 pixel->index=(MagickRealType) GetPixelIndex(index);
90 static inline void SetMagickPixelPacketBias(
const Image *image,
96 pixel->red=image->bias;
97 pixel->green=image->bias;
98 pixel->blue=image->bias;
99 pixel->opacity=image->bias;
100 pixel->index=image->bias;
103 static inline void SetPixelPacket(
const Image *image,
106 SetPixelRed(color,ClampToQuantum(pixel->red));
107 SetPixelGreen(color,ClampToQuantum(pixel->green));
108 SetPixelBlue(color,ClampToQuantum(pixel->blue));
109 SetPixelOpacity(color,ClampToQuantum(pixel->opacity));
110 if (index == (IndexPacket *) NULL)
112 if ((image->colorspace == CMYKColorspace) ||
113 (image->storage_class == PseudoClass))
114 SetPixelIndex(index,ClampToQuantum(pixel->index));
117 #if defined(__cplusplus) || defined(c_plusplus)