MagickCore  6.8.5
draw.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2013 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 #if defined(__cplusplus) || defined(c_plusplus)
22 extern "C" {
23 #endif
24 
25 #include "magick/geometry.h"
26 #include "magick/image.h"
27 #include "magick/pixel.h"
28 #include "magick/type.h"
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 {
157 
160 
163 
164  StopInfo
166 
167  size_t
169 
172 
175 
176  size_t
178 
179  PointInfo
181 
184 } GradientInfo;
185 
186 typedef struct _ElementReference
187 {
188  char
189  *id;
190 
193 
196 
197  size_t
199 
201  *previous,
202  *next;
204 
205 typedef struct _DrawInfo
206 {
207  char
209  *geometry;
210 
213 
216 
219 
222  stroke;
223 
224  double
226 
229 
230  Image
232  *tile,
234 
238 
239  FillRule
241 
242  LineCap
244 
245  LineJoin
247 
248  size_t
250 
251  double
253 
256 
259 
260  char
262 
263  size_t
265 
266  char
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 
310 
311  Quantum
313 
316 
319 
322 
323  size_t
325 
326  double
330 
333 } DrawInfo;
334 
335 typedef struct _PrimitiveInfo
336 {
337  PointInfo
339 
340  size_t
342 
345 
348 
349  char
351 } PrimitiveInfo;
352 
353 typedef struct _TypeMetric
354 {
355  PointInfo
357 
358  double
360  descent,
361  width,
362  height,
363  max_advance,
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