MagickCore 6.9.11-60
Convert, Edit, Or Compose Bitmap Images
draw.h
Go to the documentation of this file.
1/*
2 Copyright 1999-2021 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. You may
6 obtain a copy of the License at
7
8 https://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#include "magick/color.h"
26
27#if defined(__cplusplus) || defined(c_plusplus)
28extern "C" {
29#endif
30
31typedef enum
32{
38
39typedef enum
40{
46
47typedef enum
48{
55
56typedef enum
57{
62
63typedef enum
64{
66#undef EvenOddRule
70
71typedef enum
72{
77
78typedef enum
79{
85
86typedef enum
87{
93
94typedef enum
95{
103
104typedef enum
105{
123
124typedef enum
125{
129
130typedef enum
131{
137
138typedef struct _PointInfo
139{
140 double
144
145typedef struct _StopInfo
146{
149
153
154typedef struct _GradientInfo
155{
158
161
164
167
168 size_t
170
173
176
177 size_t
179
182
186
190
191typedef struct _ElementReference
192{
193 char
195
198
201
202 size_t
204
205 struct _ElementReference
209
210typedef struct _DrawInfo
211{
212 char
215
218
221
224
228
229 double
231
234
235 Image
239
243
246
247 LineCap
249
252
253 size_t
255
256 double
258
261
264
265 char
267
268 size_t
270
271 char
275
278
281
282 size_t
284
285 char
287
288 double
290
291 char
293
296
300
301 char
303
304 double
306
307 char
309
312
315
316 Quantum
318
321
324
327
328 size_t
330
331 double
335
338
339 double
342
345
346 Image
348
351
352 Image
354
355 char
357
361
362typedef struct _PrimitiveInfo
363{
366
367 size_t
369
372
375
376 char
378
382
383typedef struct _TypeMetric
384{
387
388 double
396
399
403
408
411 DrawClipPath(Image *,const DrawInfo *,const char *),
414 DrawPatternPath(Image *,const DrawInfo *,const char *,Image **),
415 DrawPrimitive(Image *,const DrawInfo *,const PrimitiveInfo *);
416
417extern MagickExport void
419 GetDrawInfo(const ImageInfo *,DrawInfo *);
420
421#if defined(__cplusplus) || defined(c_plusplus)
422}
423#endif
424
425#endif
ComplianceType
Definition: color.h:29
CompositeOperator
Definition: composite.h:26
MagickExport MagickBooleanType DrawGradientImage(Image *, const DrawInfo *)
GradientType
Definition: draw.h:72
@ UndefinedGradient
Definition: draw.h:73
@ LinearGradient
Definition: draw.h:74
@ RadialGradient
Definition: draw.h:75
MagickExport void GetAffineMatrix(AffineMatrix *)
MagickExport void GetDrawInfo(const ImageInfo *, DrawInfo *)
Definition: draw.c:5859
PrimitiveType
Definition: draw.h:105
@ RectanglePrimitive
Definition: draw.h:109
@ ColorPrimitive
Definition: draw.h:117
@ MattePrimitive
Definition: draw.h:118
@ PathPrimitive
Definition: draw.h:121
@ CirclePrimitive
Definition: draw.h:113
@ TextPrimitive
Definition: draw.h:119
@ PointPrimitive
Definition: draw.h:107
@ RoundRectanglePrimitive
Definition: draw.h:110
@ ArcPrimitive
Definition: draw.h:111
@ PolygonPrimitive
Definition: draw.h:115
@ LinePrimitive
Definition: draw.h:108
@ BezierPrimitive
Definition: draw.h:116
@ EllipsePrimitive
Definition: draw.h:112
@ ImagePrimitive
Definition: draw.h:120
@ UndefinedPrimitive
Definition: draw.h:106
@ PolylinePrimitive
Definition: draw.h:114
struct _PointInfo PointInfo
LineJoin
Definition: draw.h:87
@ RoundJoin
Definition: draw.h:90
@ MiterJoin
Definition: draw.h:89
@ UndefinedJoin
Definition: draw.h:88
@ BevelJoin
Definition: draw.h:91
struct _TypeMetric TypeMetric
MagickExport MagickBooleanType DrawPatternPath(Image *, const DrawInfo *, const char *, Image **)
struct _ElementReference ElementReference
DecorationType
Definition: draw.h:48
@ OverlineDecoration
Definition: draw.h:52
@ NoDecoration
Definition: draw.h:50
@ UndefinedDecoration
Definition: draw.h:49
@ UnderlineDecoration
Definition: draw.h:51
@ LineThroughDecoration
Definition: draw.h:53
MagickExport MagickBooleanType DrawAffineImage(Image *, const Image *, const AffineMatrix *)
struct _PrimitiveInfo PrimitiveInfo
MagickExport MagickBooleanType DrawClipPath(Image *, const DrawInfo *, const char *)
MagickExport MagickBooleanType DrawImage(Image *, const DrawInfo *)
LineCap
Definition: draw.h:79
@ ButtCap
Definition: draw.h:81
@ UndefinedCap
Definition: draw.h:80
@ SquareCap
Definition: draw.h:83
@ RoundCap
Definition: draw.h:82
struct _DrawInfo DrawInfo
DirectionType
Definition: draw.h:57
@ LeftToRightDirection
Definition: draw.h:60
@ UndefinedDirection
Definition: draw.h:58
@ RightToLeftDirection
Definition: draw.h:59
struct _GradientInfo GradientInfo
AlignType
Definition: draw.h:32
@ CenterAlign
Definition: draw.h:35
@ UndefinedAlign
Definition: draw.h:33
@ RightAlign
Definition: draw.h:36
@ LeftAlign
Definition: draw.h:34
FillRule
Definition: draw.h:64
@ EvenOddRule
Definition: draw.h:67
@ NonZeroRule
Definition: draw.h:68
@ UndefinedRule
Definition: draw.h:65
ReferenceType
Definition: draw.h:125
@ GradientReference
Definition: draw.h:127
@ UndefinedReference
Definition: draw.h:126
SpreadMethod
Definition: draw.h:131
@ RepeatSpread
Definition: draw.h:135
@ UndefinedSpread
Definition: draw.h:132
@ ReflectSpread
Definition: draw.h:134
@ PadSpread
Definition: draw.h:133
ClipPathUnits
Definition: draw.h:40
@ UserSpace
Definition: draw.h:42
@ UserSpaceOnUse
Definition: draw.h:43
@ ObjectBoundingBox
Definition: draw.h:44
@ UndefinedPathUnits
Definition: draw.h:41
MagickExport DrawInfo * AcquireDrawInfo(void)
MagickExport DrawInfo * CloneDrawInfo(const ImageInfo *, const DrawInfo *)
struct _StopInfo StopInfo
MagickExport MagickBooleanType DrawPrimitive(Image *, const DrawInfo *, const PrimitiveInfo *)
Definition: draw.c:5184
PaintMethod
Definition: draw.h:95
@ UndefinedMethod
Definition: draw.h:96
@ FillToBorderMethod
Definition: draw.h:100
@ PointMethod
Definition: draw.h:97
@ ResetMethod
Definition: draw.h:101
@ FloodfillMethod
Definition: draw.h:99
@ ReplaceMethod
Definition: draw.h:98
MagickExport DrawInfo * DestroyDrawInfo(DrawInfo *)
Definition: draw.c:974
GravityType
Definition: geometry.h:80
MagickDoubleType MagickRealType
Definition: magick-type.h:129
unsigned short Quantum
Definition: magick-type.h:89
MagickBooleanType
Definition: magick-type.h:203
#define MagickExport
Definition: method-attribute.h:80
Definition: geometry.h:96
Definition: draw.h:211
ImageInfo * image_info
Definition: draw.h:359
double stroke_width
Definition: draw.h:230
MagickBooleanType text_antialias
Definition: draw.h:242
DirectionType direction
Definition: draw.h:337
double pointsize
Definition: draw.h:289
double interword_spacing
Definition: draw.h:333
Image * clipping_mask
Definition: draw.h:347
char * encoding
Definition: draw.h:286
GradientInfo gradient
Definition: draw.h:233
SegmentInfo bounds
Definition: draw.h:311
Image * fill_pattern
Definition: draw.h:236
PixelPacket stroke
Definition: draw.h:227
MagickBooleanType clip_path
Definition: draw.h:344
double stroke_opacity
Definition: draw.h:341
double interline_spacing
Definition: draw.h:334
size_t signature
Definition: draw.h:329
AffineMatrix affine
Definition: draw.h:220
MagickBooleanType debug
Definition: draw.h:326
PixelPacket fill
Definition: draw.h:226
LineJoin linejoin
Definition: draw.h:251
DecorationType decorate
Definition: draw.h:260
size_t face
Definition: draw.h:269
char * id
Definition: draw.h:356
double kerning
Definition: draw.h:332
ElementReference element_reference
Definition: draw.h:323
LineCap linecap
Definition: draw.h:248
Image * stroke_pattern
Definition: draw.h:238
char * clip_mask
Definition: draw.h:308
ClipPathUnits clip_units
Definition: draw.h:314
size_t miterlimit
Definition: draw.h:254
FillRule fill_rule
Definition: draw.h:245
char * primitive
Definition: draw.h:213
char * text
Definition: draw.h:266
ComplianceType compliance
Definition: draw.h:350
char * geometry
Definition: draw.h:214
MagickBooleanType render
Definition: draw.h:320
char * font
Definition: draw.h:272
Image * composite_mask
Definition: draw.h:353
AlignType align
Definition: draw.h:295
char * metrics
Definition: draw.h:273
size_t weight
Definition: draw.h:283
Image * tile
Definition: draw.h:237
char * family
Definition: draw.h:274
char * server_name
Definition: draw.h:302
char * density
Definition: draw.h:292
MagickBooleanType stroke_antialias
Definition: draw.h:241
double * dash_pattern
Definition: draw.h:305
PixelPacket border_color
Definition: draw.h:299
StretchType stretch
Definition: draw.h:280
double fill_opacity
Definition: draw.h:340
PixelPacket undercolor
Definition: draw.h:298
CompositeOperator compose
Definition: draw.h:263
double dash_offset
Definition: draw.h:257
StyleType style
Definition: draw.h:277
GravityType gravity
Definition: draw.h:223
Quantum opacity
Definition: draw.h:317
RectangleInfo viewbox
Definition: draw.h:217
Definition: draw.h:192
ReferenceType type
Definition: draw.h:197
struct _ElementReference * previous
Definition: draw.h:205
char * id
Definition: draw.h:194
size_t signature
Definition: draw.h:203
GradientInfo gradient
Definition: draw.h:200
struct _ElementReference * next
Definition: draw.h:207
Definition: draw.h:155
MagickRealType angle
Definition: draw.h:185
size_t number_stops
Definition: draw.h:169
MagickBooleanType debug
Definition: draw.h:175
MagickRealType radius
Definition: draw.h:184
StopInfo * stops
Definition: draw.h:166
SegmentInfo gradient_vector
Definition: draw.h:163
SpreadMethod spread
Definition: draw.h:172
PointInfo radii
Definition: draw.h:188
PointInfo center
Definition: draw.h:181
size_t signature
Definition: draw.h:178
GradientType type
Definition: draw.h:157
RectangleInfo bounding_box
Definition: draw.h:160
Definition: image.h:362
Definition: image.h:153
Definition: pixel.h:105
Definition: pixel.h:132
Definition: draw.h:139
double x
Definition: draw.h:141
double y
Definition: draw.h:142
Definition: draw.h:363
size_t coordinates
Definition: draw.h:368
PrimitiveType primitive
Definition: draw.h:371
PointInfo point
Definition: draw.h:365
char * text
Definition: draw.h:377
MagickBooleanType closed_subpath
Definition: draw.h:380
PaintMethod method
Definition: draw.h:374
Definition: geometry.h:124
Definition: image.h:106
Definition: draw.h:146
MagickRealType offset
Definition: draw.h:151
MagickPixelPacket color
Definition: draw.h:148
Definition: draw.h:384
double max_advance
Definition: draw.h:393
double height
Definition: draw.h:392
double ascent
Definition: draw.h:389
double width
Definition: draw.h:391
SegmentInfo bounds
Definition: draw.h:398
PointInfo pixels_per_em
Definition: draw.h:386
double descent
Definition: draw.h:390
double underline_thickness
Definition: draw.h:395
double underline_position
Definition: draw.h:394
PointInfo origin
Definition: draw.h:401
StretchType
Definition: type.h:26
StyleType
Definition: type.h:41