MagickWand.h revision 0157aeadef2fce908277168097a160a8f15a6952
19f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li/*
29f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  Copyright 1999-2010 ImageMagick Studio LLC, a non-profit organization
39f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  dedicated to making software imaging solutions freely available.
49f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
59f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  You may not use this file except in compliance with the License.
69f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  obtain a copy of the License at
79f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
89f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li    http://www.imagemagick.org/script/license.php
99f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
109f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  Unless required by applicable law or agreed to in writing, software
119f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  distributed under the License is distributed on an "AS IS" BASIS,
129f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  See the License for the specific language governing permissions and
149f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  limitations under the License.
159f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
169f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  MagickWand Application Programming Interface declarations.
179f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li*/
189f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
199f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#ifndef _MAGICK_WAND_H
209f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#define _MAGICK_WAND_H
219f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
229f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#if defined(__cplusplus) || defined(c_plusplus)
239f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Liextern "C" {
249f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#endif
259f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
269f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#if !defined(_MAGICKWAND_CONFIG_H)
279f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# define _MAGICKWAND_CONFIG_H
289f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# if !defined(vms) && !defined(macintosh)
299f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  include "magick/magick-config.h"
309f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# else
319f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  include "magick-config.h"
329f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# endif
339f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#if defined(_magickcore_const) && !defined(const)
349f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# define const _magickcore_const
359f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#endif
369f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#if defined(_magickcore_inline) && !defined(inline)
379f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# define inline _magickcore_inline
389f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#endif
399f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# if defined(__cplusplus) || defined(c_plusplus)
409f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  undef inline
419f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# endif
429f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#endif
439f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
449f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include <stdio.h>
459f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include <stdarg.h>
469f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include <stdlib.h>
479f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include <sys/types.h>
489f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
499f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#if defined(WIN32) || defined(WIN64)
509f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  define MAGICKCORE_WINDOWS_SUPPORT
519f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#else
529f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  define MAGICKCORE_POSIX_SUPPORT
539f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#endif
549f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
559f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__CYGWIN__) && !defined(__MINGW32__)
569f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# if defined(_MT) && defined(_DLL) && !defined(_MAGICKDLL_) && !defined(_LIB)
579f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  define _MAGICKDLL_
589f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# endif
599f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# if defined(_MAGICKDLL_)
609f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  if defined(_VISUALC_)
619f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#   pragma warning( disable: 4273 )  /* Disable the dll linkage warnings */
629f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  endif
639f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  if !defined(_MAGICKLIB_)
649f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#   define WandExport  __declspec(dllimport)
659f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#   if defined(_VISUALC_)
669f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#    pragma message( "MagickWand lib DLL import interface" )
679f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#   endif
689f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  else
699f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#   define WandExport  __declspec(dllexport)
709f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#   if defined(_VISUALC_)
719f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#    pragma message( "MagickWand lib DLL export interface" )
729f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#   endif
739f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  endif
749f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# else
759f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  define WandExport
769f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  if defined(_VISUALC_)
779f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#   pragma message( "MagickWand lib static interface" )
789f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  endif
799f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# endif
809f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
819f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# if defined(_DLL) && !defined(_LIB)
829f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  define ModuleExport  __declspec(dllexport)
839f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  if defined(_VISUALC_)
849f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#   pragma message( "MagickWand module DLL export interface" )
859f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  endif
869f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# else
879f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  define ModuleExport
889f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  if defined(_VISUALC_)
899f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#   pragma message( "MagickWand module static interface" )
909f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  endif
919f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
929f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# endif
939f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# define WandGlobal __declspec(thread)
949f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# if defined(_VISUALC_)
959f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  pragma warning(disable : 4018)
969f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  pragma warning(disable : 4244)
979f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  pragma warning(disable : 4142)
989f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  pragma warning(disable : 4800)
999f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  pragma warning(disable : 4786)
1009f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  pragma warning(disable : 4996)
1019f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# endif
1029f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#else
1039f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# define WandExport
1049f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# define ModuleExport
1059f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# define WandGlobal
1069f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#endif
1079f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
1089f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#if !defined(MaxTextExtent)
1099f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li# define MaxTextExtent  4096
1109f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#endif
1119f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#define WandSignature  0xabacadabUL
1129f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
1139f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#if !defined(wand_attribute)
1149f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  if !defined(__GNUC__)
1159f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#    define wand_attribute(x)  /* nothing */
1169f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  else
1179f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#    define wand_attribute  __attribute__
1189f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#  endif
1199f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#endif
1209f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
1219f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Litypedef struct _MagickWand
1229f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  MagickWand;
1239f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
1249f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include "magick/MagickCore.h"
1259f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include "wand/animate.h"
1269f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include "wand/compare.h"
1279f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include "wand/composite.h"
1289f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include "wand/conjure.h"
1299f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include "wand/convert.h"
1309f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include "wand/deprecate.h"
1319f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include "wand/display.h"
1329f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include "wand/drawing-wand.h"
1339f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include "wand/identify.h"
1349f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include "wand/import.h"
1359f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include "wand/magick-property.h"
1369f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include "wand/magick-image.h"
1379f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include "wand/mogrify.h"
1389f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include "wand/montage.h"
1399f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include "wand/pixel-iterator.h"
1409f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include "wand/pixel-view.h"
1419f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include "wand/pixel-wand.h"
1429f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#include "wand/stream.h"
1439f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
1449f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Liextern WandExport char
1459f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  *MagickGetException(const MagickWand *,ExceptionType *);
1469f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
1479f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Liextern WandExport ExceptionType
1489f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  MagickGetExceptionType(const MagickWand *);
1499f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
1509f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Liextern WandExport long
1519f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  MagickGetIteratorIndex(MagickWand *);
1529f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
1539f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Liextern WandExport MagickBooleanType
1549f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  IsMagickWand(const MagickWand *),
1559f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  MagickClearException(MagickWand *),
1569f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  MagickSetIteratorIndex(MagickWand *,const long);
1579f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
1589f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Liextern WandExport MagickWand
1599f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  *CloneMagickWand(const MagickWand *),
1609f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  *DestroyMagickWand(MagickWand *),
1619f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  *NewMagickWand(void),
1629f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  *NewMagickWandFromImage(const Image *);
1639f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
1649f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Liextern WandExport void
1659f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  ClearMagickWand(MagickWand *),
1669f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  MagickWandGenesis(void),
1679f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  MagickWandTerminus(void),
1689f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  *MagickRelinquishMemory(void *),
1699f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  MagickResetIterator(MagickWand *),
1709f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  MagickSetFirstIterator(MagickWand *),
1719f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li  MagickSetLastIterator(MagickWand *);
1729f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
1739f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#if defined(__cplusplus) || defined(c_plusplus)
1749f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li}
1759f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#endif
1769f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li
1779f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li#endif
1789f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li