# magick.h

Go to the documentation of this file.

    00001 /*
    00002   Copyright 1999-2010 ImageMagick Studio LLC, a non-profit organization
    00003   dedicated to making software imaging solutions freely available.
    00004
    00005   You may not use this file except in compliance with the License.
    00006   obtain a copy of the License at
    00007
    00008     http://www.imagemagick.org/script/license.php
    00009
    00010   Unless required by applicable law or agreed to in writing, software
    00011   distributed under the License is distributed on an "AS IS" BASIS,
    00012   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    00013   See the License for the specific language governing permissions and
    00014   limitations under the License.
    00015
    00016   MagickCore magick methods.
    00017 */
    00018 #ifndef _MAGICKCORE_MAGICK_H
    00019 #define _MAGICKCORE_MAGICK_H
    00020
    00021 #if defined(__cplusplus) || defined(c_plusplus)
    00022 extern "C" {
    00023 #endif
    00024
    00025 typedef enum
    00026 {
    00027   NoThreadSupport = 0x0000,
    00028   DecoderThreadSupport = 0x0001,
    00029   EncoderThreadSupport = 0x0002
    00030 } MagickThreadSupport;
    00031
    00032 typedef Image
    00033   *DecodeImageHandler(const ImageInfo *,ExceptionInfo *);
    00034
    00035 typedef MagickBooleanType
    00036   EncodeImageHandler(const ImageInfo *,Image *);
    00037
    00038 typedef MagickBooleanType
    00039   IsImageFormatHandler(const unsigned char *,const size_t);
    00040
    00041 typedef struct _MagickInfo
    00042 {
    00043   char
    00044     *name,
    00045     *description,
    00046     *version,
    00047     *note,
    00048     *module;
    00049
    00050   ImageInfo
    00051     *image_info;
    00052
    00053   DecodeImageHandler
    00054     *decoder;
    00055
    00056   EncodeImageHandler
    00057     *encoder;
    00058
    00059   IsImageFormatHandler
    00060     *magick;
    00061
    00062   void
    00063     *client_data;
    00064
    00065   MagickBooleanType
    00066     adjoin,
    00067     raw,
    00068     endian_support,
    00069     blob_support,
    00070     seekable_stream;
    00071
    00072   MagickStatusType
    00073     thread_support;
    00074
    00075   MagickBooleanType
    00076     stealth;
    00077
    00078   struct _MagickInfo
    00079     *previous,
    00080     *next;  /* deprecated, use GetMagickInfoList() */
    00081
    00082   unsigned long
    00083     signature;
    00084 } MagickInfo;
    00085
    00086 extern MagickExport char
    00087   **GetMagickList(const char *,unsigned long *,ExceptionInfo *);
    00088
    00089 extern MagickExport const char
    00090   *GetImageMagick(const unsigned char *,const size_t),
    00091   *GetMagickDescription(const MagickInfo *);
    00092
    00093 extern MagickExport DecodeImageHandler
    00094   *GetImageDecoder(const MagickInfo *);
    00095
    00096 extern MagickExport EncodeImageHandler
    00097   *GetImageEncoder(const MagickInfo *);
    00098
    00099 extern MagickExport MagickBooleanType
    00100   GetMagickAdjoin(const MagickInfo *),
    00101   GetMagickBlobSupport(const MagickInfo *),
    00102   GetMagickEndianSupport(const MagickInfo *),
    00103   GetMagickSeekableStream(const MagickInfo *),
    00104   IsMagickInstantiated(void),
    00105   UnregisterMagickInfo(const char *);
    00106
    00107 extern const MagickExport MagickInfo
    00108   *GetMagickInfo(const char *,ExceptionInfo *),
    00109   **GetMagickInfoList(const char *,unsigned long *,ExceptionInfo *);
    00110
    00111 extern MagickExport MagickInfo
    00112   *RegisterMagickInfo(MagickInfo *),
    00113   *SetMagickInfo(const char *);
    00114
    00115 extern MagickExport MagickStatusType
    00116   GetMagickThreadSupport(const MagickInfo *);
    00117
    00118 extern MagickExport void
    00119   DestroyMagickList(void),
    00120   MagickCoreGenesis(const char *,const MagickBooleanType),
    00121   MagickCoreTerminus(void);
    00122
    00123 #if defined(__cplusplus) || defined(c_plusplus)
    00124 }
    00125 #endif
    00126
    00127 #endif