blob: 6648c532ccb0929980c5b1349c0b9d829691b99e [file] [log] [blame]
cristy3ed852e2009-09-05 21:47:34 +00001/*
Cristy7ce65e72015-12-12 18:03:16 -05002 Copyright 1999-2016 ImageMagick Studio LLC, a non-profit organization
cristy3ed852e2009-09-05 21:47:34 +00003 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 MagickWand Application Programming Interface declarations.
17*/
18
cristye7139e02012-02-29 12:42:18 +000019#ifndef _MAGICKWAND_MAGICKWAND_H
20#define _MAGICKWAND_MAGICKWAND_H
cristy3ed852e2009-09-05 21:47:34 +000021
22#if defined(__cplusplus) || defined(c_plusplus)
23extern "C" {
24#endif
25
26#if !defined(_MAGICKWAND_CONFIG_H)
27# define _MAGICKWAND_CONFIG_H
28# if !defined(vms) && !defined(macintosh)
cristy4c08aed2011-07-01 19:47:50 +000029# include "MagickCore/magick-config.h"
cristy3ed852e2009-09-05 21:47:34 +000030# else
31# include "magick-config.h"
32# endif
33#if defined(_magickcore_const) && !defined(const)
34# define const _magickcore_const
35#endif
36#if defined(_magickcore_inline) && !defined(inline)
37# define inline _magickcore_inline
38#endif
dirk05d2ff72015-11-18 23:13:43 +010039#if !defined(magick_restrict)
40# if !defined(_magickcore_restrict)
41# define magick_restrict restrict
42# else
43# define magick_restrict _magickcore_restrict
44# endif
cristyba56db52011-05-20 02:08:11 +000045#endif
cristy3ed852e2009-09-05 21:47:34 +000046# if defined(__cplusplus) || defined(c_plusplus)
47# undef inline
48# endif
49#endif
50
cristyc3eda392013-04-03 00:22:13 +000051#define MAGICKWAND_CHECK_VERSION(major,minor,micro) \
52 ((MAGICKWAND_MAJOR_VERSION > (major)) || \
53 ((MAGICKWAND_MAJOR_VERSION == (major)) && \
54 (MAGICKWAND_MINOR_VERSION > (minor))) || \
55 ((MAGICKWAND_MAJOR_VERSION == (major)) && \
56 (MAGICKWAND_MINOR_VERSION == (minor)) && \
57 (MAGICKWAND_MICRO_VERSION >= (micro))))
58
cristy3ed852e2009-09-05 21:47:34 +000059#include <stdio.h>
60#include <stdarg.h>
61#include <stdlib.h>
cristy5a41c362012-10-31 11:39:27 +000062#include <math.h>
cristy3ed852e2009-09-05 21:47:34 +000063#include <sys/types.h>
cristy6398ec72013-11-28 02:00:27 +000064#include <time.h>
cristy3ed852e2009-09-05 21:47:34 +000065
cristy0157aea2010-04-24 21:12:18 +000066#if defined(WIN32) || defined(WIN64)
cristyc3eda392013-04-03 00:22:13 +000067# define MAGICKWAND_WINDOWS_SUPPORT
cristy0157aea2010-04-24 21:12:18 +000068#else
cristyc3eda392013-04-03 00:22:13 +000069# define MAGICKWAND_POSIX_SUPPORT
cristy0157aea2010-04-24 21:12:18 +000070#endif
cristy3ed852e2009-09-05 21:47:34 +000071
cristy3ed852e2009-09-05 21:47:34 +000072typedef struct _MagickWand
73 MagickWand;
74
cristy87110812013-04-03 00:40:44 +000075#include "MagickWand/method-attribute.h"
cristy4c08aed2011-07-01 19:47:50 +000076#include "MagickCore/MagickCore.h"
77#include "MagickWand/animate.h"
78#include "MagickWand/compare.h"
79#include "MagickWand/composite.h"
80#include "MagickWand/conjure.h"
81#include "MagickWand/convert.h"
82#include "MagickWand/deprecate.h"
83#include "MagickWand/display.h"
84#include "MagickWand/drawing-wand.h"
85#include "MagickWand/identify.h"
86#include "MagickWand/import.h"
anthony76edd742012-04-09 03:09:04 +000087#include "MagickWand/wandcli.h"
anthony2052d272012-02-28 12:48:29 +000088#include "MagickWand/operation.h"
anthony00886dc2012-02-12 13:00:55 +000089#include "MagickWand/magick-cli.h"
cristy4c08aed2011-07-01 19:47:50 +000090#include "MagickWand/magick-property.h"
91#include "MagickWand/magick-image.h"
92#include "MagickWand/mogrify.h"
93#include "MagickWand/montage.h"
94#include "MagickWand/pixel-iterator.h"
95#include "MagickWand/pixel-wand.h"
96#include "MagickWand/stream.h"
97#include "MagickWand/wand-view.h"
cristy3ed852e2009-09-05 21:47:34 +000098
99extern WandExport char
100 *MagickGetException(const MagickWand *,ExceptionType *);
101
102extern WandExport ExceptionType
103 MagickGetExceptionType(const MagickWand *);
104
cristy3ed852e2009-09-05 21:47:34 +0000105extern WandExport MagickBooleanType
106 IsMagickWand(const MagickWand *),
cristy019459e2014-01-02 23:47:13 +0000107 IsMagickWandInstantiated(void),
cristy3ed852e2009-09-05 21:47:34 +0000108 MagickClearException(MagickWand *),
cristybb503372010-05-27 20:51:26 +0000109 MagickSetIteratorIndex(MagickWand *,const ssize_t);
cristy3ed852e2009-09-05 21:47:34 +0000110
111extern WandExport MagickWand
112 *CloneMagickWand(const MagickWand *),
113 *DestroyMagickWand(MagickWand *),
114 *NewMagickWand(void),
115 *NewMagickWandFromImage(const Image *);
116
cristy5ed838e2010-05-31 00:05:35 +0000117extern WandExport ssize_t
118 MagickGetIteratorIndex(MagickWand *);
119
cristy3ed852e2009-09-05 21:47:34 +0000120extern WandExport void
121 ClearMagickWand(MagickWand *),
122 MagickWandGenesis(void),
123 MagickWandTerminus(void),
124 *MagickRelinquishMemory(void *),
125 MagickResetIterator(MagickWand *),
126 MagickSetFirstIterator(MagickWand *),
127 MagickSetLastIterator(MagickWand *);
128
129#if defined(__cplusplus) || defined(c_plusplus)
130}
131#endif
132
133#endif