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)
32static 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=(double) GetPixelRed(pixel)-(double) GetPixelGreen(pixel);
45 beta=(double) GetPixelGreen(pixel)-(double) GetPixelBlue(pixel);
46 if ((fabs(alpha) <= MagickEpsilon) && (fabs(beta) <= MagickEpsilon))
53static 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=(double) GetPixelRed(pixel)-(double) GetPixelGreen(pixel);
68 beta=(double) GetPixelGreen(pixel)-(double) GetPixelBlue(pixel);
69 if (((fabs((
double) GetPixelRed(pixel)) <= MagickEpsilon) ||
70 (fabs((
double) GetPixelRed(pixel)-(
double) QuantumRange) <= MagickEpsilon)) &&
71 (fabs(alpha) <= MagickEpsilon) && (fabs(beta) <= MagickEpsilon))
78static 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);
90static 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;
103static 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)