# composite.c File Reference

`#include "magick/studio.h"`
`#include "magick/artifact.h"`
`#include "magick/cache-view.h"`
`#include "magick/client.h"`
`#include "magick/color.h"`
`#include "magick/color-private.h"`
`#include "magick/colorspace.h"`
`#include "magick/colorspace-private.h"`
`#include "magick/composite.h"`
`#include "magick/composite-private.h"`
`#include "magick/constitute.h"`
`#include "magick/draw.h"`
`#include "magick/fx.h"`
`#include "magick/gem.h"`
`#include "magick/geometry.h"`
`#include "magick/image.h"`
`#include "magick/image-private.h"`
`#include "magick/list.h"`
`#include "magick/log.h"`
`#include "magick/memory_.h"`
`#include "magick/option.h"`
`#include "magick/pixel-private.h"`
`#include "magick/property.h"`
`#include "magick/quantum.h"`
`#include "magick/resample.h"`
`#include "magick/resource_.h"`
`#include "magick/string_.h"`
`#include "magick/utility.h"`
`#include "magick/version.h"`

## Functions

static double | MagickMin (const double x, const double y)
static MagickRealType | Add (const MagickRealType p, const MagickRealType q)
static void | CompositeAdd (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static MagickRealType | Atop (const MagickRealType p, const MagickRealType alpha, const MagickRealType q, const MagickRealType beta)
static void | CompositeAtop (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static void | CompositeBumpmap (const MagickPixelPacket *p, const MagickRealType magick_unused(alpha), const MagickPixelPacket *q, const MagickRealType magick_unused(beta), MagickPixelPacket *composite)
static void | CompositeClear (const MagickPixelPacket *q, MagickPixelPacket *composite)
static MagickRealType | ColorBurn (const MagickRealType p, const MagickRealType alpha, const MagickRealType q, const MagickRealType beta)
static void | CompositeColorBurn (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static MagickRealType | ColorDodge (const MagickRealType p, const MagickRealType alpha, const MagickRealType q, const MagickRealType beta)
static void | CompositeColorDodge (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static MagickRealType | Darken (const MagickRealType p, const MagickRealType alpha, const MagickRealType q, const MagickRealType beta)
static void | CompositeDarken (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static MagickRealType | Difference (const MagickRealType p, const MagickRealType alpha, const MagickRealType q, const MagickRealType beta)
static void | CompositeDifference (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static MagickRealType | Divide (const MagickRealType p, const MagickRealType q)
static void | CompositeDivide (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static MagickRealType | Exclusion (const MagickRealType p, const MagickRealType alpha, const MagickRealType q, const MagickRealType beta)
static void | CompositeExclusion (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static MagickRealType | HardLight (const MagickRealType p, const MagickRealType alpha, const MagickRealType q, const MagickRealType beta)
static void | CompositeHardLight (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static void | CompositeHSB (const MagickRealType red, const MagickRealType green, const MagickRealType blue, double *hue, double *saturation, double *brightness)
static MagickRealType | In (const MagickRealType p, const MagickRealType alpha, const MagickRealType magick_unused(q), const MagickRealType beta)
static void | CompositeIn (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static MagickRealType | Lighten (const MagickRealType p, const MagickRealType alpha, const MagickRealType q, const MagickRealType beta)
static void | CompositeLighten (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static MagickRealType | LinearLight (const MagickRealType p, const MagickRealType alpha, const MagickRealType q, const MagickRealType beta)
static void | CompositeLinearLight (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static MagickRealType | Minus (const MagickRealType p, const MagickRealType alpha, const MagickRealType q, const MagickRealType beta)
static void | CompositeMinus (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static MagickRealType | Multiply (const MagickRealType p, const MagickRealType alpha, const MagickRealType q, const MagickRealType beta)
static void | CompositeMultiply (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static MagickRealType | Out (const MagickRealType p, const MagickRealType alpha, const MagickRealType magick_unused(q), const MagickRealType beta)
static void | CompositeOut (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static void | CompositeOver (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static MagickRealType | Overlay (const MagickRealType p, const MagickRealType alpha, const MagickRealType q, const MagickRealType beta)
static void | CompositeOverlay (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static MagickRealType | Plus (const MagickRealType p, const MagickRealType alpha, const MagickRealType q, const MagickRealType beta)
static void | CompositePlus (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static MagickRealType | Screen (const MagickRealType p, const MagickRealType alpha, const MagickRealType q, const MagickRealType beta)
static void | CompositeScreen (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static MagickRealType | SoftLight (const MagickRealType p, const MagickRealType alpha, const MagickRealType q, const MagickRealType beta)
static void | CompositeSoftLight (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static MagickRealType | Subtract (const MagickRealType p, const MagickRealType magick_unused(alpha), const MagickRealType q, const MagickRealType magick_unused(beta))
static void | CompositeSubtract (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static MagickRealType | Threshold (const MagickRealType p, const MagickRealType magick_unused(alpha), const MagickRealType q, const MagickRealType magick_unused(beta), const MagickRealType threshold, const MagickRealType amount)
static void | CompositeThreshold (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, const MagickRealType threshold, const MagickRealType amount, MagickPixelPacket *composite)
static MagickRealType | Xor (const MagickRealType p, const MagickRealType alpha, const MagickRealType q, const MagickRealType beta)
static void | CompositeXor (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static void | HSBComposite (const double hue, const double saturation, const double brightness, MagickRealType *red, MagickRealType *green, MagickRealType *blue)
MagickExport MagickBooleanType | CompositeImage (Image *image, const CompositeOperator compose, const Image *composite_image, const long x_offset, const long y_offset)
MagickExport MagickBooleanType | CompositeImageChannel (Image *image, const ChannelType magick_unused(channel), const CompositeOperator compose, const Image *composite_image, const long x_offset, const long y_offset)

## Function Documentation

static MagickRealType Add | ( | const MagickRealType | p,
|  | const MagickRealType | q |
| ) |  |  | `[inline, static]`

static MagickRealType Atop | ( | const MagickRealType | p,
|  | const MagickRealType | alpha,
|  | const MagickRealType | q,
|  | const MagickRealType | beta |
| ) |  |  | `[inline, static]`

static MagickRealType ColorBurn | ( | const MagickRealType | p,
|  | const MagickRealType | alpha,
|  | const MagickRealType | q,
|  | const MagickRealType | beta |
| ) |  |  | `[static]`

static MagickRealType ColorDodge | ( | const MagickRealType | p,
|  | const MagickRealType | alpha,
|  | const MagickRealType | q,
|  | const MagickRealType | beta |
| ) |  |  | `[static]`

static void CompositeAdd | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeAtop | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeBumpmap | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | magick_unused(alpha),
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | magick_unused(beta),
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeClear | ( | const MagickPixelPacket * | q,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeColorBurn | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeColorDodge | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeDarken | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeDifference | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeDivide | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeExclusion | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeHardLight | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeHSB | ( | const MagickRealType | red,
|  | const MagickRealType | green,
|  | const MagickRealType | blue,
|  | double * | hue,
|  | double * | saturation,
|  | double * | brightness |
| ) |  |  | `[static]`

MagickExport MagickBooleanType CompositeImage | ( | Image * | image,
|  | const CompositeOperator | compose,
|  | const Image * | composite_image,
|  | const long | x_offset,
|  | const long | y_offset |
| ) |  |  |

MagickExport MagickBooleanType CompositeImageChannel | ( | Image * | image,
|  | const ChannelType | magick_unused(channel),
|  | const CompositeOperator | compose,
|  | const Image * | composite_image,
|  | const long | x_offset,
|  | const long | y_offset |
| ) |  |  |

static void CompositeIn | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeLighten | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeLinearLight | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeMinus | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeMultiply | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeOut | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeOver | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeOverlay | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositePlus | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeScreen | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeSoftLight | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeSubtract | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeThreshold | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | const MagickRealType | threshold,
|  | const MagickRealType | amount,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static void CompositeXor | ( | const MagickPixelPacket * | p,
|  | const MagickRealType | alpha,
|  | const MagickPixelPacket * | q,
|  | const MagickRealType | beta,
|  | MagickPixelPacket * | composite |
| ) |  |  | `[inline, static]`

static MagickRealType Darken | ( | const MagickRealType | p,
|  | const MagickRealType | alpha,
|  | const MagickRealType | q,
|  | const MagickRealType | beta |
| ) |  |  | `[inline, static]`

static MagickRealType Difference | ( | const MagickRealType | p,
|  | const MagickRealType | alpha,
|  | const MagickRealType | q,
|  | const MagickRealType | beta |
| ) |  |  | `[inline, static]`

static MagickRealType Divide | ( | const MagickRealType | p,
|  | const MagickRealType | q |
| ) |  |  | `[inline, static]`

static MagickRealType Exclusion | ( | const MagickRealType | p,
|  | const MagickRealType | alpha,
|  | const MagickRealType | q,
|  | const MagickRealType | beta |
| ) |  |  | `[inline, static]`

static MagickRealType HardLight | ( | const MagickRealType | p,
|  | const MagickRealType | alpha,
|  | const MagickRealType | q,
|  | const MagickRealType | beta |
| ) |  |  | `[static]`

static void HSBComposite | ( | const double | hue,
|  | const double | saturation,
|  | const double | brightness,
|  | MagickRealType * | red,
|  | MagickRealType * | green,
|  | MagickRealType * | blue |
| ) |  |  | `[static]`

static MagickRealType In | ( | const MagickRealType | p,
|  | const MagickRealType | alpha,
|  | const MagickRealType | magick_unused(q),
|  | const MagickRealType | beta |
| ) |  |  | `[inline, static]`

static MagickRealType Lighten | ( | const MagickRealType | p,
|  | const MagickRealType | alpha,
|  | const MagickRealType | q,
|  | const MagickRealType | beta |
| ) |  |  | `[inline, static]`

static MagickRealType LinearLight | ( | const MagickRealType | p,
|  | const MagickRealType | alpha,
|  | const MagickRealType | q,
|  | const MagickRealType | beta |
| ) |  |  | `[inline, static]`

static double MagickMin | ( | const double | x,
|  | const double | y |
| ) |  |  | `[inline, static]`

static MagickRealType Minus | ( | const MagickRealType | p,
|  | const MagickRealType | alpha,
|  | const MagickRealType | q,
|  | const MagickRealType | beta |
| ) |  |  | `[inline, static]`

static MagickRealType Multiply | ( | const MagickRealType | p,
|  | const MagickRealType | alpha,
|  | const MagickRealType | q,
|  | const MagickRealType | beta |
| ) |  |  | `[inline, static]`

static MagickRealType Out | ( | const MagickRealType | p,
|  | const MagickRealType | alpha,
|  | const MagickRealType | magick_unused(q),
|  | const MagickRealType | beta |
| ) |  |  | `[inline, static]`

static MagickRealType Overlay | ( | const MagickRealType | p,
|  | const MagickRealType | alpha,
|  | const MagickRealType | q,
|  | const MagickRealType | beta |
| ) |  |  | `[static]`

static MagickRealType Plus | ( | const MagickRealType | p,
|  | const MagickRealType | alpha,
|  | const MagickRealType | q,
|  | const MagickRealType | beta |
| ) |  |  | `[inline, static]`

static MagickRealType Screen | ( | const MagickRealType | p,
|  | const MagickRealType | alpha,
|  | const MagickRealType | q,
|  | const MagickRealType | beta |
| ) |  |  | `[inline, static]`

static MagickRealType SoftLight | ( | const MagickRealType | p,
|  | const MagickRealType | alpha,
|  | const MagickRealType | q,
|  | const MagickRealType | beta |
| ) |  |  | `[static]`

static MagickRealType Subtract | ( | const MagickRealType | p,
|  | const MagickRealType | magick_unused(alpha),
|  | const MagickRealType | q,
|  | const MagickRealType | magick_unused(beta) |
| ) |  |  | `[inline, static]`

static MagickRealType Threshold | ( | const MagickRealType | p,
|  | const MagickRealType | magick_unused(alpha),
|  | const MagickRealType | q,
|  | const MagickRealType | magick_unused(beta),
|  | const MagickRealType | threshold,
|  | const MagickRealType | amount |
| ) |  |  | `[inline, static]`

static MagickRealType Xor | ( | const MagickRealType | p,
|  | const MagickRealType | alpha,
|  | const MagickRealType | q,
|  | const MagickRealType | beta |
| ) |  |  | `[inline, static]`