MagickCore  6.8.9
draw.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2014 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  http://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 } GradientInfo;
185 
186 typedef struct _ElementReference
187 {
188  char
189  *id;
190 
191  ReferenceType
193 
196 
197  size_t
199 
201  *previous,
202  *next;
204 
205 typedef struct _DrawInfo
206 {
207  char
209  *geometry;
210 
213 
216 
219 
221  fill,
222  stroke;
223 
224  double
226 
229 
230  Image
231  *fill_pattern,
232  *tile,
233  *stroke_pattern;
234 
236  stroke_antialias,
238 
239  FillRule
241 
242  LineCap
244 
245  LineJoin
247 
248  size_t
250 
251  double
253 
254  DecorationType
256 
259 
260  char
262 
263  size_t
265 
266  char
267  *font,
268  *metrics,
269  *family;
270 
271  StyleType
273 
276 
277  size_t
279 
280  char
282 
283  double
285 
286  char
288 
289  AlignType
291 
294  border_color;
295 
296  char
298 
299  double
301 
302  char
304 
307 
308  ClipPathUnits
310 
311  Quantum
313 
316 
319 
322 
323  size_t
325 
326  double
328  interword_spacing,
329  interline_spacing;
330 
331  DirectionType
333 } DrawInfo;
334 
335 typedef struct _PrimitiveInfo
336 {
337  PointInfo
339 
340  size_t
342 
343  PrimitiveType
345 
346  PaintMethod
348 
349  char
351 } PrimitiveInfo;
352 
353 typedef struct _TypeMetric
354 {
355  PointInfo
357 
358  double
359  ascent,
360  descent,
361  width,
362  height,
363  max_advance,
364  underline_position,
365  underline_thickness;
366 
369 
370  PointInfo
372 } TypeMetric;
373 
374 extern MagickExport DrawInfo
375  *AcquireDrawInfo(void),
376  *CloneDrawInfo(const ImageInfo *,const DrawInfo *),
378 
380  DrawAffineImage(Image *,const Image *,const AffineMatrix *),
381  DrawClipPath(Image *,const DrawInfo *,const char *),
382  DrawGradientImage(Image *,const DrawInfo *),
383  DrawImage(Image *,const DrawInfo *),
384  DrawPatternPath(Image *,const DrawInfo *,const char *,Image **),
385  DrawPrimitive(Image *,const DrawInfo *,const PrimitiveInfo *);
386 
387 extern MagickExport void
389  GetDrawInfo(const ImageInfo *,DrawInfo *);
390 
391 #if defined(__cplusplus) || defined(c_plusplus)
392 }
393 #endif
394 
395 #endif
char * server_name
Definition: draw.h:297
MagickExport DrawInfo * AcquireDrawInfo(void)
Definition: draw.h:59
char * primitive
Definition: draw.h:208
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:198
GravityType gravity
Definition: draw.h:218
Definition: draw.h:80
SegmentInfo bounds
Definition: draw.h:306
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:243
struct _PrimitiveInfo PrimitiveInfo
Definition: draw.h:353
double kerning
Definition: draw.h:327
MagickBooleanType debug
Definition: draw.h:174
Definition: draw.h:89
ElementReference element_reference
Definition: draw.h:318
Definition: draw.h:205
Definition: image.h:358
Definition: geometry.h:93
MagickBooleanType render
Definition: draw.h:315
size_t coordinates
Definition: draw.h:341
double pointsize
Definition: draw.h:284
Definition: draw.h:90
struct _DrawInfo DrawInfo
Definition: draw.h:40
StyleType style
Definition: draw.h:272
DecorationType decorate
Definition: draw.h:255
MagickBooleanType debug
Definition: draw.h:321
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 *)
float MagickRealType
Definition: magick-type.h:76
Definition: draw.h:115
Definition: pixel.h:131
Definition: draw.h:43
Definition: draw.h:33
Definition: draw.h:118
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:215
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:225
GradientType
Definition: draw.h:70
Definition: draw.h:50
MagickBooleanType
Definition: magick-type.h:211
char * id
Definition: draw.h:189
ClipPathUnits
Definition: draw.h:38
Definition: draw.h:144
LineJoin linejoin
Definition: draw.h:246
double width
Definition: draw.h:359
Definition: draw.h:335
PointInfo origin
Definition: draw.h:371
MagickExport DrawInfo * DestroyDrawInfo(DrawInfo *)
Definition: draw.c:830
Definition: pixel.h:104
struct _ElementReference * previous
Definition: draw.h:200
PrimitiveType primitive
Definition: draw.h:344
PointInfo center
Definition: draw.h:180
Definition: draw.h:35
char * metrics
Definition: draw.h:267
DecorationType
Definition: draw.h:46
size_t face
Definition: draw.h:264
double y
Definition: draw.h:140
PixelPacket stroke
Definition: draw.h:221
StretchType
Definition: type.h:25
FillRule fill_rule
Definition: draw.h:240
StopInfo * stops
Definition: draw.h:165
Definition: draw.h:57
LineJoin
Definition: draw.h:85
GradientInfo gradient
Definition: draw.h:195
Definition: draw.h:97
Quantum opacity
Definition: draw.h:312
PointInfo pixels_per_em
Definition: draw.h:356
PointInfo point
Definition: draw.h:338
Definition: draw.h:95
Definition: draw.h:116
MagickRealType offset
Definition: draw.h:150
struct _ElementReference * next
Definition: draw.h:200
GravityType
Definition: geometry.h:77
Definition: draw.h:52
Definition: draw.h:186
Definition: draw.h:113
Definition: draw.h:73
Definition: draw.h:100
char * density
Definition: draw.h:287
Definition: draw.h:111
Definition: draw.h:58
Definition: draw.h:134
struct _GradientInfo GradientInfo
StretchType stretch
Definition: draw.h:275
Definition: draw.h:96
Definition: draw.h:64
Definition: geometry.h:121
MagickPixelPacket color
Definition: draw.h:147
Definition: draw.h:108
PrimitiveType
Definition: draw.h:103
Image * tile
Definition: draw.h:231
char * encoding
Definition: draw.h:281
GradientInfo gradient
Definition: draw.h:228
Definition: draw.h:109
MagickExport MagickBooleanType DrawGradientImage(Image *, const DrawInfo *)
PixelPacket undercolor
Definition: draw.h:293
Definition: draw.h:153
Definition: draw.h:34
MagickExport MagickBooleanType DrawClipPath(Image *, const DrawInfo *, const char *)
char * clip_mask
Definition: draw.h:303
Definition: draw.h:131
SegmentInfo bounds
Definition: draw.h:368
size_t signature
Definition: draw.h:324
struct _TypeMetric TypeMetric
Definition: draw.h:79
unsigned short Quantum
Definition: magick-type.h:93
MagickExport MagickBooleanType DrawPrimitive(Image *, const DrawInfo *, const PrimitiveInfo *)
Definition: draw.c:4188
Definition: draw.h:132
ReferenceType type
Definition: draw.h:192
AlignType align
Definition: draw.h:290
SegmentInfo gradient_vector
Definition: draw.h:162
Definition: draw.h:117
MagickBooleanType text_antialias
Definition: draw.h:236
char * text
Definition: draw.h:350
ClipPathUnits clip_units
Definition: draw.h:309
Definition: draw.h:49
FillRule
Definition: draw.h:62
Definition: draw.h:126
size_t miterlimit
Definition: draw.h:249
Definition: draw.h:32
Definition: draw.h:110
Definition: draw.h:48
size_t signature
Definition: draw.h:177
PaintMethod method
Definition: draw.h:347
double dash_offset
Definition: draw.h:252
DirectionType
Definition: draw.h:55
char * text
Definition: draw.h:261
MagickExport void GetDrawInfo(const ImageInfo *, DrawInfo *)
Definition: draw.c:4796
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:300
Definition: draw.h:66
CompositeOperator compose
Definition: draw.h:258
DirectionType direction
Definition: draw.h:332
Definition: draw.h:137
AlignType
Definition: draw.h:30
Definition: draw.h:42
struct _StopInfo StopInfo
RectangleInfo viewbox
Definition: draw.h:212
ReferenceType
Definition: draw.h:123
size_t weight
Definition: draw.h:278