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)
29 static 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-TransparentOpacity) >= MagickEpsilon)
49 fill->opacity=(Quantum) (QuantumRange-(QuantumRange-fill->opacity)*
50 QuantumScale*(QuantumRange-draw_info->fill_opacity));
54 static inline MagickBooleanType GetStrokeColor(
const DrawInfo *draw_info,
55 const ssize_t x,
const ssize_t y,
PixelPacket *stroke)
63 pattern=draw_info->stroke_pattern;
64 if (pattern == (
Image *) NULL)
66 *stroke=draw_info->stroke;
69 status=GetOneVirtualMethodPixel(pattern,TileVirtualPixelMethod,
70 x+pattern->tile_offset.x,y+pattern->tile_offset.y,stroke,
72 if (pattern->matte == MagickFalse)
73 stroke->opacity=OpaqueOpacity;
74 if (fabs(draw_info->stroke_opacity-TransparentOpacity) >= MagickEpsilon)
75 stroke->opacity=(Quantum) (QuantumRange-(QuantumRange-stroke->opacity)*
76 QuantumScale*(QuantumRange-draw_info->stroke_opacity));
80 #if defined(__cplusplus) || defined(c_plusplus)