# paint.c File Reference

`#include "magick/studio.h"`
`#include "magick/color.h"`
`#include "magick/color-private.h"`
`#include "magick/colorspace-private.h"`
`#include "magick/composite.h"`
`#include "magick/composite-private.h"`
`#include "magick/draw.h"`
`#include "magick/draw-private.h"`
`#include "magick/exception.h"`
`#include "magick/exception-private.h"`
`#include "magick/gem.h"`
`#include "magick/monitor.h"`
`#include "magick/paint.h"`
`#include "magick/pixel-private.h"`
`#include "magick/string_.h"`

## Defines

#define | MaxStacksize (1UL << 15)
#define | PushSegmentStack(up, left, right, delta)
#define | OilPaintImageTag "OilPaint/Image"
#define | OpaquePaintImageTag "Opaque/Image"
#define | TransparentPaintImageTag "Transparent/Image"

## Functions

MagickExport MagickBooleanType | FloodfillPaintImage (Image *image, const ChannelType channel, const DrawInfo *draw_info, const MagickPixelPacket *target, const long x_offset, const long y_offset, const MagickBooleanType invert)
MagickExport Image * | OilPaintImage (const Image *image, const double radius, ExceptionInfo *exception)
MagickExport MagickBooleanType | OpaquePaintImage (Image *image, const MagickPixelPacket *target, const MagickPixelPacket *fill, const MagickBooleanType invert)
MagickExport MagickBooleanType | OpaquePaintImageChannel (Image *image, const ChannelType channel, const MagickPixelPacket *target, const MagickPixelPacket *fill, const MagickBooleanType invert)
MagickExport MagickBooleanType | TransparentPaintImage (Image *image, const MagickPixelPacket *target, const Quantum opacity, const MagickBooleanType invert)

## Define Documentation

#define MaxStacksize (1UL << 15)

#define OilPaintImageTag "OilPaint/Image"

#define OpaquePaintImageTag "Opaque/Image"

#define PushSegmentStack | ( | up,
|  | left,
|  | right,
|  | delta |  | ) |

Value:

    { \
      if (s >= (segment_stack+MaxStacksize)) \
        ThrowBinaryException(DrawError,"SegmentStackOverflow",image->filename) \
      else \
        { \
          if ((((up)+(delta)) >= 0) && (((up)+(delta)) < (long) image->rows)) \
            { \
              s->x1=(double) (left); \
              s->y1=(double) (up); \
              s->x2=(double) (right); \
              s->y2=(double) (delta); \
              s++; \
            } \
        } \
    }

#define TransparentPaintImageTag "Transparent/Image"

## Function Documentation

MagickExport MagickBooleanType FloodfillPaintImage | ( | Image * | image,
|  | const ChannelType | channel,
|  | const DrawInfo * | draw_info,
|  | const MagickPixelPacket * | target,
|  | const long | x_offset,
|  | const long | y_offset,
|  | const MagickBooleanType | invert |
| ) |  |  |

MagickExport Image* OilPaintImage | ( | const Image * | image,
|  | const double | radius,
|  | ExceptionInfo * | exception |
| ) |  |  |

MagickExport MagickBooleanType OpaquePaintImage | ( | Image * | image,
|  | const MagickPixelPacket * | target,
|  | const MagickPixelPacket * | fill,
|  | const MagickBooleanType | invert |
| ) |  |  |

MagickExport MagickBooleanType OpaquePaintImageChannel | ( | Image * | image,
|  | const ChannelType | channel,
|  | const MagickPixelPacket * | target,
|  | const MagickPixelPacket * | fill,
|  | const MagickBooleanType | invert |
| ) |  |  |

MagickExport MagickBooleanType TransparentPaintImage | ( | Image * | image,
|  | const MagickPixelPacket * | target,
|  | const Quantum | opacity,
|  | const MagickBooleanType | invert |
| ) |  |  |