MagickCore
7.1.1
Convert, Edit, Or Compose Bitmap Images
Loading...
Searching...
No Matches
draw.h
1
/*
2
Copyright @ 1999 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 "MagickCore/geometry.h"
22
#include "MagickCore/image.h"
23
#include "MagickCore/pixel.h"
24
#include "MagickCore/type.h"
25
#include "MagickCore/color.h"
26
27
#if defined(__cplusplus) || defined(c_plusplus)
28
extern
"C"
{
29
#endif
30
31
typedef
enum
32
{
33
UndefinedAlign,
34
LeftAlign,
35
CenterAlign,
36
RightAlign
37
} AlignType;
38
39
typedef
enum
40
{
41
UndefinedPathUnits,
42
UserSpace,
43
UserSpaceOnUse,
44
ObjectBoundingBox
45
} ClipPathUnits;
46
47
typedef
enum
48
{
49
UndefinedDecoration,
50
NoDecoration,
51
UnderlineDecoration,
52
OverlineDecoration,
53
LineThroughDecoration
54
} DecorationType;
55
56
typedef
enum
57
{
58
UndefinedDirection,
59
RightToLeftDirection,
60
LeftToRightDirection,
61
TopToBottomDirection
62
} DirectionType;
63
64
typedef
enum
65
{
66
UndefinedRule,
67
#undef EvenOddRule
68
EvenOddRule,
69
NonZeroRule
70
} FillRule;
71
72
typedef
enum
73
{
74
UndefinedGradient,
75
LinearGradient,
76
RadialGradient
77
} GradientType;
78
79
typedef
enum
80
{
81
UndefinedCap,
82
ButtCap,
83
RoundCap,
84
SquareCap
85
} LineCap;
86
87
typedef
enum
88
{
89
UndefinedJoin,
90
MiterJoin,
91
RoundJoin,
92
BevelJoin
93
} LineJoin;
94
95
typedef
enum
96
{
97
UndefinedMethod,
98
PointMethod,
99
ReplaceMethod,
100
FloodfillMethod,
101
FillToBorderMethod,
102
ResetMethod
103
} PaintMethod;
104
105
typedef
enum
106
{
107
UndefinedPrimitive,
108
AlphaPrimitive,
109
ArcPrimitive,
110
BezierPrimitive,
111
CirclePrimitive,
112
ColorPrimitive,
113
EllipsePrimitive,
114
ImagePrimitive,
115
LinePrimitive,
116
PathPrimitive,
117
PointPrimitive,
118
PolygonPrimitive,
119
PolylinePrimitive,
120
RectanglePrimitive,
121
RoundRectanglePrimitive,
122
TextPrimitive
123
} PrimitiveType;
124
125
typedef
enum
126
{
127
UndefinedReference,
128
GradientReference
129
} ReferenceType;
130
131
typedef
enum
132
{
133
UndefinedSpread,
134
PadSpread,
135
ReflectSpread,
136
RepeatSpread
137
} SpreadMethod;
138
139
typedef
enum
140
{
141
UndefinedWordBreakType,
142
NormalWordBreakType,
143
BreakWordBreakType
144
} WordBreakType;
145
146
typedef
struct
_StopInfo
147
{
148
PixelInfo
149
color;
150
151
double
152
offset;
153
}
StopInfo
;
154
155
typedef
struct
_GradientInfo
156
{
157
GradientType
158
type;
159
160
RectangleInfo
161
bounding_box;
162
163
SegmentInfo
164
gradient_vector;
165
166
StopInfo
167
*stops;
168
169
size_t
170
number_stops;
171
172
SpreadMethod
173
spread;
174
175
MagickBooleanType
176
debug;
177
178
PointInfo
179
center,
180
radii;
181
182
double
183
radius,
184
angle;
185
186
size_t
187
signature;
188
}
GradientInfo
;
189
190
typedef
struct
_ElementReference
191
{
192
char
193
*id;
194
195
ReferenceType
196
type;
197
198
GradientInfo
199
gradient;
200
201
struct
_ElementReference
202
*previous,
203
*next;
204
205
size_t
206
signature;
207
}
ElementReference
;
208
209
typedef
struct
_DrawInfo
210
{
211
char
212
*primitive,
213
*geometry;
214
215
RectangleInfo
216
viewbox;
217
218
AffineMatrix
219
affine;
220
221
PixelInfo
222
fill,
223
stroke,
224
undercolor,
225
border_color;
226
227
Image
228
*fill_pattern,
229
*stroke_pattern;
230
231
double
232
stroke_width;
233
234
GradientInfo
235
gradient;
236
237
MagickBooleanType
238
stroke_antialias,
239
text_antialias;
240
241
FillRule
242
fill_rule;
243
244
LineCap
245
linecap;
246
247
LineJoin
248
linejoin;
249
250
size_t
251
miterlimit;
252
253
double
254
dash_offset;
255
256
DecorationType
257
decorate;
258
259
CompositeOperator
260
compose;
261
262
char
263
*text,
264
*font,
265
*metrics,
266
*family;
267
268
size_t
269
face;
270
271
StyleType
272
style;
273
274
StretchType
275
stretch;
276
277
size_t
278
weight;
279
280
char
281
*encoding;
282
283
double
284
pointsize;
285
286
char
287
*density;
288
289
AlignType
290
align;
291
292
GravityType
293
gravity;
294
295
char
296
*server_name;
297
298
double
299
*dash_pattern;
300
301
char
302
*clip_mask;
303
304
SegmentInfo
305
bounds;
306
307
ClipPathUnits
308
clip_units;
309
310
Quantum
311
alpha;
312
313
MagickBooleanType
314
render;
315
316
ElementReference
317
element_reference;
318
319
double
320
kerning,
321
interword_spacing,
322
interline_spacing;
323
324
DirectionType
325
direction;
326
327
MagickBooleanType
328
debug;
329
330
size_t
331
signature;
332
333
double
334
fill_alpha,
335
stroke_alpha;
336
337
MagickBooleanType
338
clip_path;
339
340
Image
341
*clipping_mask;
342
343
ComplianceType
344
compliance;
345
346
Image
347
*composite_mask;
348
349
char
350
*id;
351
352
WordBreakType
353
word_break;
354
355
ImageInfo
356
*image_info;
357
}
DrawInfo
;
358
359
typedef
struct
_PrimitiveInfo
360
{
361
PointInfo
362
point;
363
364
size_t
365
coordinates;
366
367
PrimitiveType
368
primitive;
369
370
PaintMethod
371
method;
372
373
char
374
*text;
375
376
MagickBooleanType
377
closed_subpath;
378
}
PrimitiveInfo
;
379
380
typedef
struct
_TypeMetric
381
{
382
PointInfo
383
pixels_per_em;
384
385
double
386
ascent,
387
descent,
388
width,
389
height,
390
max_advance,
391
underline_position,
392
underline_thickness;
393
394
SegmentInfo
395
bounds;
396
397
PointInfo
398
origin;
399
}
TypeMetric
;
400
401
extern
MagickExport
DrawInfo
402
*AcquireDrawInfo(
void
),
403
*CloneDrawInfo(
const
ImageInfo
*,
const
DrawInfo
*),
404
*DestroyDrawInfo(
DrawInfo
*);
405
406
extern
MagickExport MagickBooleanType
407
DrawAffineImage(
Image
*,
const
Image
*,
const
AffineMatrix
*,
ExceptionInfo
*),
408
DrawClipPath(
Image
*,
const
DrawInfo
*,
const
char
*,
ExceptionInfo
*),
409
DrawGradientImage(
Image
*,
const
DrawInfo
*,
ExceptionInfo
*),
410
DrawImage(
Image
*,
const
DrawInfo
*,
ExceptionInfo
*),
411
DrawPatternPath(
Image
*,
const
DrawInfo
*,
const
char
*,
Image
**,
412
ExceptionInfo
*),
413
DrawPrimitive(
Image
*,
const
DrawInfo
*,
const
PrimitiveInfo
*,
ExceptionInfo
*);
414
415
extern
MagickExport
void
416
GetAffineMatrix(
AffineMatrix
*),
417
GetDrawInfo(
const
ImageInfo
*,
DrawInfo
*);
418
419
#if defined(__cplusplus) || defined(c_plusplus)
420
}
421
#endif
422
423
#endif
_AffineMatrix
Definition
geometry.h:95
_DrawInfo
Definition
draw.h:210
_ElementReference
Definition
draw.h:191
_ExceptionInfo
Definition
exception.h:102
_GradientInfo
Definition
draw.h:156
_ImageInfo
Definition
image.h:359
_Image
Definition
image.h:132
_PixelInfo
Definition
pixel.h:182
_PointInfo
Definition
geometry.h:123
_PrimitiveInfo
Definition
draw.h:360
_RectangleInfo
Definition
geometry.h:130
_SegmentInfo
Definition
image.h:85
_StopInfo
Definition
draw.h:147
_TypeMetric
Definition
draw.h:381
ImageMagick-7
MagickCore
draw.h
Generated by
1.12.0