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
358
359typedef struct _PrimitiveInfo
360{
363
364 size_t
366
369
372
373 char
375
379
380typedef struct _TypeMetric
381{
384
385 double
393
396
400
405
408 DrawClipPath(Image *,const DrawInfo *,const char *),
411 DrawPatternPath(Image *,const DrawInfo *,const char *,Image **),
412 DrawPrimitive(Image *,const DrawInfo *,const PrimitiveInfo *);
413
414extern MagickExport void
416 GetDrawInfo(const ImageInfo *,DrawInfo *);
417
418#if defined(__cplusplus) || defined(c_plusplus)
419}
420#endif
421
422#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:5812
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:5174
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
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:360
size_t coordinates
Definition: draw.h:365
PrimitiveType primitive
Definition: draw.h:368
PointInfo point
Definition: draw.h:362
char * text
Definition: draw.h:374
MagickBooleanType closed_subpath
Definition: draw.h:377
PaintMethod method
Definition: draw.h:371
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:381
double max_advance
Definition: draw.h:390
double height
Definition: draw.h:389
double ascent
Definition: draw.h:386
double width
Definition: draw.h:388
SegmentInfo bounds
Definition: draw.h:395
PointInfo pixels_per_em
Definition: draw.h:383
double descent
Definition: draw.h:387
double underline_thickness
Definition: draw.h:392
double underline_position
Definition: draw.h:391
PointInfo origin
Definition: draw.h:398
StretchType
Definition: type.h:26
StyleType
Definition: type.h:41