MagickCore 6.9.12
paint.c File Reference
Include dependency graph for paint.c:

Go to the source code of this file.

Macros

#define MaxStacksize   524288UL
 
#define PushSegmentStack(up, left, right, delta)
 
#define NumberPaintBins   256
 
#define OilPaintImageTag   "OilPaint/Image"
 
#define OpaquePaintImageTag   "Opaque/Image"
 
#define TransparentPaintImageTag   "Transparent/Image"
 
#define TransparentPaintImageTag   "Transparent/Image"
 

Functions

MagickExport MagickBooleanType FloodfillPaintImage (Image *image, const ChannelType channel, const DrawInfo *draw_info, const MagickPixelPacket *target, const ssize_t x_offset, const ssize_t y_offset, const MagickBooleanType invert)
 
MagickExport MagickBooleanType GradientImage (Image *image, const GradientType type, const SpreadMethod method, const PixelPacket *start_color, const PixelPacket *stop_color)
 
static size_t ** DestroyHistogramTLS (size_t **histogram)
 
static size_t ** AcquireHistogramTLS (const size_t count)
 
MagickExport ImageOilPaintImage (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)
 
MagickExport MagickBooleanType TransparentPaintImageChroma (Image *image, const MagickPixelPacket *low, const MagickPixelPacket *high, const Quantum opacity, const MagickBooleanType invert)
 

Macro Definition Documentation

◆ MaxStacksize

#define MaxStacksize   524288UL

◆ NumberPaintBins

#define NumberPaintBins   256

◆ OilPaintImageTag

#define OilPaintImageTag   "OilPaint/Image"

◆ OpaquePaintImageTag

#define OpaquePaintImageTag   "Opaque/Image"

◆ PushSegmentStack

#define PushSegmentStack (   up,
  left,
  right,
  delta 
)
Value:
{ \
if (s >= (segment_stack+MaxStacksize)) \
{ \
segment_info=RelinquishVirtualMemory(segment_info); \
image_view=DestroyCacheView(image_view); \
floodplane_view=DestroyCacheView(floodplane_view); \
floodplane_image=DestroyImage(floodplane_image); \
ThrowBinaryException(DrawError,"SegmentStackOverflow",image->filename) \
} \
else \
{ \
if ((((up)+(delta)) >= 0) && (((up)+(delta)) < (ssize_t) image->rows)) \
{ \
s->x1=(double) (left); \
s->y1=(double) (up); \
s->x2=(double) (right); \
s->y2=(double) (delta); \
s++; \
} \
} \
}
MagickExport CacheView * DestroyCacheView(CacheView *cache_view)
Definition: cache-view.c:256
@ DrawError
Definition: exception.h:68
MagickExport Image * DestroyImage(Image *image)
Definition: image.c:1179
MagickExport MemoryInfo * RelinquishVirtualMemory(MemoryInfo *memory_info)
Definition: memory.c:1229
#define MaxStacksize

◆ TransparentPaintImageTag [1/2]

#define TransparentPaintImageTag   "Transparent/Image"

◆ TransparentPaintImageTag [2/2]

#define TransparentPaintImageTag   "Transparent/Image"

Function Documentation

◆ AcquireHistogramTLS()

static size_t ** AcquireHistogramTLS ( const size_t  count)
static

◆ DestroyHistogramTLS()

static size_t ** DestroyHistogramTLS ( size_t **  histogram)
static

Definition at line 686 of file paint.c.

References GetMagickResourceLimit(), RelinquishMagickMemory(), and ThreadResource.

Referenced by AcquireHistogramTLS(), and OilPaintImage().

◆ FloodfillPaintImage()

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

Definition at line 110 of file paint.c.

References AcquireAuthenticCacheView(), AcquireVirtualCacheView(), AcquireVirtualMemory(), _MagickPixelPacket::blue, BlueChannel, ClampToQuantum(), CloneImage(), CMYKColorspace, _Image::colorspace, _Image::columns, ConvertRGBToCMYK(), DestroyCacheView(), DestroyImage(), DirectClass, _Image::exception, _Image::filename, _DrawInfo::fill, GetCacheViewAuthenticIndexQueue(), GetCacheViewAuthenticPixels(), GetCacheViewVirtualIndexQueue(), GetCacheViewVirtualPixels(), GetFillColor(), GetMagickModule, GetMagickPixelPacket(), GetPixelOpacity, GetVirtualMemoryBlob(), _MagickPixelPacket::green, GreenChannel, _MagickPixelPacket::index, IndexChannel, IsEventLogging(), IsGrayColorspace(), IsMagickColorSimilar(), LogMagickEvent(), magick_restrict, MagickCoreSignature, MagickFalse, MagickTrue, _Image::matte, MaxStacksize, _MagickPixelPacket::opacity, _PixelPacket::opacity, OpacityChannel, OpaqueAlphaChannel, OpaqueOpacity, PushSegmentStack, _MagickPixelPacket::red, RedChannel, RelinquishVirtualMemory(), ResourceLimitError, _Image::rows, SetImageAlphaChannel(), SetImageColorspace(), SetImageStorageClass(), SetMagickPixelPacket(), SetPixelBlue, SetPixelGreen, SetPixelIndex, SetPixelOpacity, SetPixelRed, _DrawInfo::signature, _Image::signature, sRGBColorspace, SyncCacheViewAuthenticPixels(), ThrowBinaryException, TraceEvent, TransparentOpacity, _SegmentInfo::x1, _SegmentInfo::x2, _SegmentInfo::y1, and _SegmentInfo::y2.

Referenced by DrawPrimitive(), and PaintFloodfillImage().

◆ GradientImage()

◆ OilPaintImage()

◆ OpaquePaintImage()

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

Definition at line 940 of file paint.c.

References CompositeChannels, and OpaquePaintImageChannel().

◆ OpaquePaintImageChannel()

◆ TransparentPaintImage()

◆ TransparentPaintImageChroma()