This source file includes following definitions.
- IsGrayPixel
- IsMonochromePixel
- SetMagickPixelPacket
- SetMagickPixelPacketBias
- SetPixelPacket
#ifndef _MAGICKCORE_PIXEL_PRIVATE_H
#define _MAGICKCORE_PIXEL_PRIVATE_H
#include "magick/image.h"
#include "magick/color.h"
#include "magick/image-private.h"
#include "magick/memory_.h"
#include "magick/pixel-accessor.h"
#include "magick/quantum-private.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
static inline MagickBooleanType IsGrayPixel(const PixelPacket *pixel)
{
#if !defined(MAGICKCORE_HDRI_SUPPORT)
if ((GetPixelRed(pixel) == GetPixelGreen(pixel)) &&
(GetPixelGreen(pixel) == GetPixelBlue(pixel)))
return(MagickTrue);
#else
{
double
alpha,
beta;
alpha=GetPixelRed(pixel)-(double) GetPixelGreen(pixel);
beta=GetPixelGreen(pixel)-(double) GetPixelBlue(pixel);
if ((fabs(alpha) <= MagickEpsilon) && (fabs(beta) <= MagickEpsilon))
return(MagickTrue);
}
#endif
return(MagickFalse);
}
static inline MagickBooleanType IsMonochromePixel(const PixelPacket *pixel)
{
#if !defined(MAGICKCORE_HDRI_SUPPORT)
if (((GetPixelRed(pixel) == 0) ||
(GetPixelRed(pixel) == QuantumRange)) &&
(GetPixelRed(pixel) == GetPixelGreen(pixel)) &&
(GetPixelGreen(pixel) == GetPixelBlue(pixel)))
return(MagickTrue);
#else
{
double
alpha,
beta;
alpha=GetPixelRed(pixel)-(double) GetPixelGreen(pixel);
beta=GetPixelGreen(pixel)-(double) GetPixelBlue(pixel);
if (((fabs((double) GetPixelRed(pixel)) <= MagickEpsilon) ||
(fabs((double) GetPixelRed(pixel)-QuantumRange) <= MagickEpsilon)) &&
(fabs(alpha) <= MagickEpsilon) && (fabs(beta) <= MagickEpsilon))
return(MagickTrue);
}
#endif
return(MagickFalse);
}
static inline void SetMagickPixelPacket(const Image *image,
const PixelPacket *color,const IndexPacket *index,MagickPixelPacket *pixel)
{
pixel->red=(MagickRealType) GetPixelRed(color);
pixel->green=(MagickRealType) GetPixelGreen(color);
pixel->blue=(MagickRealType) GetPixelBlue(color);
pixel->opacity=(MagickRealType) GetPixelOpacity(color);
if ((image->colorspace == CMYKColorspace) &&
(index != (const IndexPacket *) NULL))
pixel->index=(MagickRealType) GetPixelIndex(index);
}
static inline void SetMagickPixelPacketBias(const Image *image,
MagickPixelPacket *pixel)
{
pixel->red=image->bias;
pixel->green=image->bias;
pixel->blue=image->bias;
pixel->opacity=image->bias;
pixel->index=image->bias;
}
static inline void SetPixelPacket(const Image *image,
const MagickPixelPacket *pixel,PixelPacket *color,IndexPacket *index)
{
SetPixelRed(color,ClampToQuantum(pixel->red));
SetPixelGreen(color,ClampToQuantum(pixel->green));
SetPixelBlue(color,ClampToQuantum(pixel->blue));
SetPixelOpacity(color,ClampToQuantum(pixel->opacity));
if ((image->colorspace == CMYKColorspace) ||
(image->storage_class == PseudoClass))
SetPixelIndex(index,ClampToQuantum(pixel->index));
}
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif