18#ifndef MAGICKCORE_DRAW_PRIVATE_H
19#define MAGICKCORE_DRAW_PRIVATE_H
21#include "magick/cache.h"
22#include "magick/image.h"
23#include "magick/memory_.h"
25#if defined(__cplusplus) || defined(c_plusplus)
29static inline MagickBooleanType GetFillColor(
const DrawInfo *draw_info,
38 pattern=draw_info->fill_pattern;
39 if (pattern == (
Image *) NULL)
41 *fill=draw_info->fill;
44 status=GetOneVirtualMethodPixel(pattern,TileVirtualPixelMethod,
45 x+pattern->tile_offset.x,y+pattern->tile_offset.y,fill,&pattern->exception);
46 if (pattern->matte == MagickFalse)
47 fill->opacity=OpaqueOpacity;
48 if (fabs(draw_info->fill_opacity-(
double) TransparentOpacity) >= MagickEpsilon)
49 fill->opacity=(Quantum) ((
double) QuantumRange-((
double) QuantumRange-
50 (
double) fill->opacity)*QuantumScale*((
double) QuantumRange-(
double)
51 draw_info->fill_opacity));
55static inline MagickBooleanType GetStrokeColor(
const DrawInfo *draw_info,
56 const ssize_t x,
const ssize_t y,
PixelPacket *stroke)
64 pattern=draw_info->stroke_pattern;
65 if (pattern == (
Image *) NULL)
67 *stroke=draw_info->stroke;
70 status=GetOneVirtualMethodPixel(pattern,TileVirtualPixelMethod,
71 x+pattern->tile_offset.x,y+pattern->tile_offset.y,stroke,
73 if (pattern->matte == MagickFalse)
74 stroke->opacity=OpaqueOpacity;
75 if (fabs(draw_info->stroke_opacity-(
double) TransparentOpacity) >= MagickEpsilon)
76 stroke->opacity=(Quantum) ((
double) QuantumRange-((
double) QuantumRange-
77 (
double) stroke->opacity)*QuantumScale*((
double) QuantumRange-(
double)
78 draw_info->stroke_opacity));
82#if defined(__cplusplus) || defined(c_plusplus)