18 #ifndef MAGICKCORE_COMPOSITE_PRIVATE_H
19 #define MAGICKCORE_COMPOSITE_PRIVATE_H
28 #if defined(__cplusplus) || defined(c_plusplus)
35 static inline double MagickOver_(
const double p,
const double alpha,
36 const double q,
const double beta)
44 return(Sa*p+Da*q*(1.0-Sa));
49 return(value < 0.0 ? 0.0 : (value > 1.0) ? 1.0 : value);
53 const double alpha,
const Quantum *q,
const double beta,
Quantum *composite)
105 (
double) q[i],beta));
161 composite->
red=gamma*(Sa*p->
red+Da*q->
red);
169 const double alpha,
const PixelInfo *q,
const double beta,
const double area,
214 #if defined(__cplusplus) || defined(c_plusplus)
static double MagickOver_(const double p, const double alpha, const double q, const double beta)
static void CompositePixelInfoPlus(const PixelInfo *p, const double alpha, const PixelInfo *q, const double beta, PixelInfo *composite)
static PixelTrait GetPixelChannelTraits(const Image *magick_restrict image, const PixelChannel channel)
static double PerceptibleReciprocal(const double x)
static void CompositePixelInfoOver(const PixelInfo *p, const double alpha, const PixelInfo *q, const double beta, PixelInfo *composite)
static void CompositePixelInfoAreaBlend(const PixelInfo *p, const double alpha, const PixelInfo *q, const double beta, const double area, PixelInfo *composite)
static double RoundToUnity(const double value)
static size_t GetPixelChannels(const Image *magick_restrict image)
static MagickBooleanType GetCompositeClipToSelf(const CompositeOperator compose)
static Quantum ClampToQuantum(const MagickRealType value)
static PixelChannel GetPixelChannelChannel(const Image *magick_restrict image, const ssize_t offset)
static void CompositePixelInfoBlend(const PixelInfo *p, const double alpha, const PixelInfo *q, const double beta, PixelInfo *composite)
ColorspaceType colorspace
static void CompositePixelOver(const Image *image, const PixelInfo *p, const double alpha, const Quantum *q, const double beta, Quantum *composite)