MagickCore  6.9.9
Convert, Edit, Or Compose Bitmap Images
draw.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization
3  dedicated to making software imaging solutions freely available.
4 
5  You may not use this file except in compliance with the License.
6  obtain a copy of the License at
7 
8  https://www.imagemagick.org/script/license.php
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15 
16  MagickCore drawing methods.
17 */
18 #ifndef MAGICKCORE_DRAW_H
19 #define MAGICKCORE_DRAW_H
20 
21 #include "magick/geometry.h"
22 #include "magick/image.h"
23 #include "magick/pixel.h"
24 #include "magick/type.h"
25 
26 #if defined(__cplusplus) || defined(c_plusplus)
27 extern "C" {
28 #endif
29 
30 typedef enum
31 {
36 } AlignType;
37 
38 typedef enum
39 {
45 
46 typedef enum
47 {
54 
55 typedef enum
56 {
61 
62 typedef enum
63 {
65 #undef EvenOddRule
68 } FillRule;
69 
70 typedef enum
71 {
75 } GradientType;
76 
77 typedef enum
78 {
83 } LineCap;
84 
85 typedef enum
86 {
91 } LineJoin;
92 
93 typedef enum
94 {
101 } PaintMethod;
102 
103 typedef enum
104 {
121 } PrimitiveType;
122 
123 typedef enum
124 {
127 } ReferenceType;
128 
129 typedef enum
130 {
135 } SpreadMethod;
136 
137 typedef struct _PointInfo
138 {
139  double
140  x,
141  y;
142 } PointInfo;
143 
144 typedef struct _StopInfo
145 {
148 
151 } StopInfo;
152 
153 typedef struct _GradientInfo
154 {
155  GradientType
157 
160 
163 
164  StopInfo
166 
167  size_t
169 
170  SpreadMethod
172 
175 
176  size_t
178 
179  PointInfo
181 
184  angle;
185 
186  PointInfo
188 } GradientInfo;
189 
190 typedef struct _ElementReference
191 {
192  char
193  *id;
194 
195  ReferenceType
197 
200 
201  size_t
203 
205  *previous,
206  *next;
208 
209 typedef struct _DrawInfo
210 {
211  char
213  *geometry;
214 
217 
220 
223 
225  fill,
226  stroke;
227 
228  double
230 
233 
234  Image
235  *fill_pattern,
236  *tile,
237  *stroke_pattern;
238 
240  stroke_antialias,
242 
243  FillRule
245 
246  LineCap
248 
249  LineJoin
251 
252  size_t
254 
255  double
257 
258  DecorationType
260 
263 
264  char
266 
267  size_t
269 
270  char
271  *font,
272  *metrics,
273  *family;
274 
275  StyleType
277 
280 
281  size_t
283 
284  char
286 
287  double
289 
290  char
292 
293  AlignType
295 
298  border_color;
299 
300  char
302 
303  double
305 
306  char
308 
311 
312  ClipPathUnits
314 
315  Quantum
317 
320 
323 
326 
327  size_t
329 
330  double
332  interword_spacing,
333  interline_spacing;
334 
335  DirectionType
337 
338  double
339  fill_opacity,
341 } DrawInfo;
342 
343 typedef struct _PrimitiveInfo
344 {
345  PointInfo
347 
348  size_t
350 
351  PrimitiveType
353 
354  PaintMethod
356 
357  char
359 } PrimitiveInfo;
360 
361 typedef struct _TypeMetric
362 {
363  PointInfo
365 
366  double
367  ascent,
368  descent,
369  width,
370  height,
371  max_advance,
372  underline_position,
373  underline_thickness;
374 
377 
378  PointInfo
380 } TypeMetric;
381 
382 extern MagickExport DrawInfo
383  *AcquireDrawInfo(void),
384  *CloneDrawInfo(const ImageInfo *,const DrawInfo *),
386 
388  DrawAffineImage(Image *,const Image *,const AffineMatrix *),
389  DrawClipPath(Image *,const DrawInfo *,const char *),
390  DrawGradientImage(Image *,const DrawInfo *),
391  DrawImage(Image *,const DrawInfo *),
392  DrawPatternPath(Image *,const DrawInfo *,const char *,Image **),
393  DrawPrimitive(Image *,const DrawInfo *,const PrimitiveInfo *);
394 
395 extern MagickExport void
397  GetDrawInfo(const ImageInfo *,DrawInfo *);
398 
399 #if defined(__cplusplus) || defined(c_plusplus)
400 }
401 #endif
402 
403 #endif
char * server_name
Definition: draw.h:301
MagickDoubleType MagickRealType
Definition: magick-type.h:123
MagickExport DrawInfo * AcquireDrawInfo(void)
Definition: draw.h:59
char * primitive
Definition: draw.h:212
Definition: draw.h:133
LineCap
Definition: draw.h:77
StyleType
Definition: type.h:40
Definition: draw.h:107
MagickExport void GetAffineMatrix(AffineMatrix *)
size_t signature
Definition: draw.h:202
GravityType gravity
Definition: draw.h:222
Definition: draw.h:80
SegmentInfo bounds
Definition: draw.h:310
GradientType type
Definition: draw.h:156
RectangleInfo bounding_box
Definition: draw.h:159
Definition: draw.h:119
Definition: draw.h:99
Definition: draw.h:105
Definition: image.h:105
LineCap linecap
Definition: draw.h:247
struct _PrimitiveInfo PrimitiveInfo
Definition: draw.h:361
double kerning
Definition: draw.h:331
MagickBooleanType debug
Definition: draw.h:174
Definition: draw.h:89
ElementReference element_reference
Definition: draw.h:322
Definition: draw.h:209
Definition: image.h:361
Definition: geometry.h:94
MagickBooleanType render
Definition: draw.h:319
size_t coordinates
Definition: draw.h:349
double pointsize
Definition: draw.h:288
Definition: draw.h:90
struct _DrawInfo DrawInfo
Definition: draw.h:40
StyleType style
Definition: draw.h:276
DecorationType decorate
Definition: draw.h:259
MagickBooleanType debug
Definition: draw.h:325
MagickExport DrawInfo * CloneDrawInfo(const ImageInfo *, const DrawInfo *)
Definition: draw.h:67
MagickExport MagickBooleanType DrawAffineImage(Image *, const Image *, const AffineMatrix *)
MagickExport MagickBooleanType DrawImage(Image *, const DrawInfo *)
Definition: draw.h:115
Definition: pixel.h:131
Definition: draw.h:43
Definition: draw.h:33
Definition: draw.h:118
PointInfo radii
Definition: draw.h:187
Definition: draw.h:106
SpreadMethod spread
Definition: draw.h:171
Definition: draw.h:112
Definition: draw.h:88
Definition: draw.h:72
AffineMatrix affine
Definition: draw.h:219
Definition: draw.h:98
Definition: image.h:152
Definition: draw.h:87
Definition: draw.h:120
double x
Definition: draw.h:140
SpreadMethod
Definition: draw.h:129
double stroke_width
Definition: draw.h:229
GradientType
Definition: draw.h:70
Definition: draw.h:50
MagickBooleanType
Definition: magick-type.h:189
char * id
Definition: draw.h:193
ClipPathUnits
Definition: draw.h:38
Definition: draw.h:144
LineJoin linejoin
Definition: draw.h:250
double width
Definition: draw.h:367
Definition: draw.h:343
PointInfo origin
Definition: draw.h:379
MagickExport DrawInfo * DestroyDrawInfo(DrawInfo *)
Definition: draw.c:827
Definition: pixel.h:104
struct _ElementReference * previous
Definition: draw.h:204
PrimitiveType primitive
Definition: draw.h:352
double stroke_opacity
Definition: draw.h:339
PointInfo center
Definition: draw.h:180
Definition: draw.h:35
char * metrics
Definition: draw.h:271
DecorationType
Definition: draw.h:46
size_t face
Definition: draw.h:268
double y
Definition: draw.h:140
PixelPacket stroke
Definition: draw.h:225
StretchType
Definition: type.h:25
FillRule fill_rule
Definition: draw.h:244
StopInfo * stops
Definition: draw.h:165
Definition: draw.h:57
LineJoin
Definition: draw.h:85
GradientInfo gradient
Definition: draw.h:199
Definition: draw.h:97
Quantum opacity
Definition: draw.h:316
PointInfo pixels_per_em
Definition: draw.h:364
PointInfo point
Definition: draw.h:346
Definition: draw.h:95
Definition: draw.h:116
MagickRealType offset
Definition: draw.h:150
struct _ElementReference * next
Definition: draw.h:204
GravityType
Definition: geometry.h:78
Definition: draw.h:52
Definition: draw.h:190
Definition: draw.h:113
Definition: draw.h:73
Definition: draw.h:100
char * density
Definition: draw.h:291
Definition: draw.h:111
Definition: draw.h:58
Definition: draw.h:134
struct _GradientInfo GradientInfo
StretchType stretch
Definition: draw.h:279
Definition: draw.h:96
Definition: draw.h:64
Definition: geometry.h:122
MagickPixelPacket color
Definition: draw.h:147
Definition: draw.h:108
PrimitiveType
Definition: draw.h:103
Image * tile
Definition: draw.h:235
char * encoding
Definition: draw.h:285
GradientInfo gradient
Definition: draw.h:232
Definition: draw.h:109
MagickExport MagickBooleanType DrawGradientImage(Image *, const DrawInfo *)
PixelPacket undercolor
Definition: draw.h:297
Definition: draw.h:153
Definition: draw.h:34
MagickExport MagickBooleanType DrawClipPath(Image *, const DrawInfo *, const char *)
char * clip_mask
Definition: draw.h:307
Definition: draw.h:131
SegmentInfo bounds
Definition: draw.h:376
size_t signature
Definition: draw.h:328
struct _TypeMetric TypeMetric
Definition: draw.h:79
unsigned short Quantum
Definition: magick-type.h:85
MagickExport MagickBooleanType DrawPrimitive(Image *, const DrawInfo *, const PrimitiveInfo *)
Definition: draw.c:4292
Definition: draw.h:132
ReferenceType type
Definition: draw.h:196
AlignType align
Definition: draw.h:294
SegmentInfo gradient_vector
Definition: draw.h:162
Definition: draw.h:117
MagickBooleanType text_antialias
Definition: draw.h:240
char * text
Definition: draw.h:358
ClipPathUnits clip_units
Definition: draw.h:313
Definition: draw.h:49
FillRule
Definition: draw.h:62
Definition: draw.h:126
size_t miterlimit
Definition: draw.h:253
Definition: draw.h:32
Definition: draw.h:110
Definition: draw.h:48
size_t signature
Definition: draw.h:177
PaintMethod method
Definition: draw.h:355
double dash_offset
Definition: draw.h:256
DirectionType
Definition: draw.h:55
char * text
Definition: draw.h:265
MagickExport void GetDrawInfo(const ImageInfo *, DrawInfo *)
Definition: draw.c:4907
Definition: draw.h:74
struct _PointInfo PointInfo
Definition: draw.h:51
Definition: draw.h:114
Definition: draw.h:125
CompositeOperator
Definition: composite.h:25
MagickExport MagickBooleanType DrawPatternPath(Image *, const DrawInfo *, const char *, Image **)
size_t number_stops
Definition: draw.h:168
PaintMethod
Definition: draw.h:93
#define MagickExport
Definition: method-attribute.h:98
struct _ElementReference ElementReference
Definition: draw.h:81
Definition: draw.h:82
Definition: draw.h:41
MagickRealType radius
Definition: draw.h:183
double * dash_pattern
Definition: draw.h:304
Definition: draw.h:66
CompositeOperator compose
Definition: draw.h:262
DirectionType direction
Definition: draw.h:336
Definition: draw.h:137
AlignType
Definition: draw.h:30
Definition: draw.h:42
struct _StopInfo StopInfo
RectangleInfo viewbox
Definition: draw.h:216
ReferenceType
Definition: draw.h:123
size_t weight
Definition: draw.h:282