magick.h

Go to the documentation of this file.
00001 /*
00002   Copyright 1999-2019 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.  You may
00006   obtain a copy of the License at
00007   
00008     https://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 #include <stdarg.h>
00026 #include "MagickCore/semaphore.h"
00027 
00028 #if defined(__cplusplus) || defined(c_plusplus)
00029 # define magick_module  _module   /* reserved word in C++(20) */
00030 #else
00031 # define magick_module  module
00032 #endif
00033 
00034 typedef enum
00035 {
00036   UndefinedFormatType,
00037   ImplicitFormatType,
00038   ExplicitFormatType
00039 } MagickFormatType;
00040 
00041 typedef enum
00042 {
00043   CoderNoFlag = 0x0000,
00044   CoderAdjoinFlag = 0x0001,
00045   CoderBlobSupportFlag = 0x0002,
00046   CoderDecoderThreadSupportFlag = 0x0004,
00047   CoderEncoderThreadSupportFlag = 0x0008,
00048   CoderEndianSupportFlag = 0x0010,
00049   CoderRawSupportFlag = 0x0020,
00050   CoderSeekableStreamFlag = 0x0040, /* deprecated */
00051   CoderStealthFlag = 0x0080,
00052   CoderUseExtensionFlag = 0x0100,
00053   CoderDecoderSeekableStreamFlag = 0x0200,
00054   CoderEncoderSeekableStreamFlag = 0x0400,
00055 
00056 } MagickInfoFlag;
00057 
00058 typedef Image
00059   *DecodeImageHandler(const ImageInfo *,ExceptionInfo *);
00060 
00061 typedef MagickBooleanType
00062   EncodeImageHandler(const ImageInfo *,Image *,ExceptionInfo *);
00063 
00064 typedef MagickBooleanType
00065   IsImageFormatHandler(const unsigned char *,const size_t);
00066 
00067 typedef struct _MagickInfo
00068 {
00069   char
00070     *name,
00071     *description,
00072     *version,
00073     *mime_type,
00074     *note,
00075     *magick_module;
00076 
00077   DecodeImageHandler
00078     *decoder;
00079 
00080   EncodeImageHandler
00081     *encoder;
00082 
00083   ImageInfo
00084     *image_info;
00085 
00086   IsImageFormatHandler
00087     *magick;
00088 
00089   MagickFormatType
00090     format_type;
00091 
00092   MagickStatusType
00093     flags;
00094 
00095   SemaphoreInfo
00096     *semaphore;
00097 
00098   size_t
00099     signature;
00100 
00101   void
00102     *client_data;
00103 } MagickInfo;
00104 
00105 extern MagickExport char
00106   **GetMagickList(const char *,size_t *,ExceptionInfo *);
00107 
00108 extern MagickExport const char
00109   *GetMagickDescription(const MagickInfo *),
00110   *GetMagickMimeType(const MagickInfo *),
00111   *GetMagickModuleName(const MagickInfo *),
00112   *GetMagickName(const MagickInfo *);
00113 
00114 extern MagickExport DecodeImageHandler
00115   *GetImageDecoder(const MagickInfo *) magick_attribute((__pure__));
00116 
00117 extern MagickExport EncodeImageHandler
00118   *GetImageEncoder(const MagickInfo *) magick_attribute((__pure__));
00119 
00120 extern MagickExport int
00121   GetMagickPrecision(void),
00122   SetMagickPrecision(const int);
00123 
00124 extern MagickExport MagickBooleanType
00125   GetImageMagick(const unsigned char *,const size_t,char *),
00126   GetMagickAdjoin(const MagickInfo *) magick_attribute((__pure__)),
00127   GetMagickBlobSupport(const MagickInfo *) magick_attribute((__pure__)),
00128   GetMagickDecoderSeekableStream(const MagickInfo *)
00129     magick_attribute((__pure__)),
00130   GetMagickDecoderThreadSupport(const MagickInfo *)
00131     magick_attribute((__pure__)),
00132   GetMagickEncoderSeekableStream(const MagickInfo *)
00133      magick_attribute((__pure__)),
00134   GetMagickEncoderThreadSupport(const MagickInfo *)
00135     magick_attribute((__pure__)),
00136   GetMagickEndianSupport(const MagickInfo *) magick_attribute((__pure__)),
00137   GetMagickRawSupport(const MagickInfo *) magick_attribute((__pure__)),
00138   GetMagickStealth(const MagickInfo *) magick_attribute((__pure__)),
00139   GetMagickUseExtension(const MagickInfo *) magick_attribute((__pure__)),
00140   IsMagickCoreInstantiated(void) magick_attribute((__pure__)),
00141   RegisterMagickInfo(MagickInfo *),
00142   UnregisterMagickInfo(const char *);
00143 
00144 extern const MagickExport MagickInfo
00145   *GetMagickInfo(const char *,ExceptionInfo *),
00146   **GetMagickInfoList(const char *,size_t *,ExceptionInfo *);
00147 
00148 extern MagickExport MagickInfo
00149   *AcquireMagickInfo(const char *, const char *, const char *);
00150 
00151 extern MagickExport void
00152   MagickCoreGenesis(const char *,const MagickBooleanType),
00153   MagickCoreTerminus(void);
00154 
00155 #if defined(__cplusplus) || defined(c_plusplus)
00156 }
00157 #endif
00158 
00159 #endif

Generated on 16 Nov 2019 for MagickCore by  doxygen 1.6.1