magick.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. /*
  2. Copyright 1999 ImageMagick Studio LLC, a non-profit organization
  3. dedicated to making software imaging solutions freely available.
  4. You may not use this file except in compliance with the License. You may
  5. obtain a copy of the License at
  6. https://imagemagick.org/script/license.php
  7. Unless required by applicable law or agreed to in writing, software
  8. distributed under the License is distributed on an "AS IS" BASIS,
  9. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. See the License for the specific language governing permissions and
  11. limitations under the License.
  12. MagickCore magick methods.
  13. */
  14. #ifndef MAGICKCORE_MAGICK_H
  15. #define MAGICKCORE_MAGICK_H
  16. #if defined(__cplusplus) || defined(c_plusplus)
  17. extern "C" {
  18. #endif
  19. #include <stdarg.h>
  20. #include "magick/semaphore.h"
  21. #if defined(__cplusplus) || defined(c_plusplus)
  22. # define magick_module _module /* reserved word in C++(20) */
  23. #else
  24. # define magick_module module
  25. #endif
  26. typedef enum
  27. {
  28. UndefinedFormatType,
  29. ImplicitFormatType,
  30. ExplicitFormatType
  31. } MagickFormatType;
  32. typedef enum
  33. {
  34. NoThreadSupport = 0x0000,
  35. DecoderThreadSupport = 0x0001,
  36. EncoderThreadSupport = 0x0002
  37. } MagickThreadSupport;
  38. typedef Image
  39. *DecodeImageHandler(const ImageInfo *,ExceptionInfo *);
  40. typedef MagickBooleanType
  41. EncodeImageHandler(const ImageInfo *,Image *);
  42. typedef MagickBooleanType
  43. IsImageFormatHandler(const unsigned char *,const size_t);
  44. typedef struct _MagickInfo
  45. {
  46. char
  47. *name,
  48. *description,
  49. *version,
  50. *note,
  51. *magick_module;
  52. ImageInfo
  53. *image_info;
  54. DecodeImageHandler
  55. *decoder;
  56. EncodeImageHandler
  57. *encoder;
  58. IsImageFormatHandler
  59. *magick;
  60. void
  61. *client_data;
  62. MagickBooleanType
  63. adjoin,
  64. raw,
  65. endian_support,
  66. blob_support,
  67. seekable_stream;
  68. MagickFormatType
  69. format_type;
  70. MagickStatusType
  71. thread_support;
  72. MagickBooleanType
  73. stealth;
  74. struct _MagickInfo
  75. *previous,
  76. *next; /* deprecated, use GetMagickInfoList() */
  77. size_t
  78. signature;
  79. char
  80. *mime_type;
  81. SemaphoreInfo
  82. *semaphore;
  83. } MagickInfo;
  84. extern MagickExport char
  85. **GetMagickList(const char *,size_t *,ExceptionInfo *);
  86. extern MagickExport const char
  87. *GetMagickDescription(const MagickInfo *),
  88. *GetMagickMimeType(const MagickInfo *);
  89. extern MagickExport DecodeImageHandler
  90. *GetImageDecoder(const MagickInfo *) magick_attribute((__pure__));
  91. extern MagickExport EncodeImageHandler
  92. *GetImageEncoder(const MagickInfo *) magick_attribute((__pure__));
  93. extern MagickExport int
  94. GetMagickPrecision(void),
  95. SetMagickPrecision(const int);
  96. extern MagickExport MagickBooleanType
  97. GetImageMagick(const unsigned char *,const size_t,char *),
  98. GetMagickAdjoin(const MagickInfo *) magick_attribute((__pure__)),
  99. GetMagickBlobSupport(const MagickInfo *) magick_attribute((__pure__)),
  100. GetMagickEndianSupport(const MagickInfo *) magick_attribute((__pure__)),
  101. GetMagickRawSupport(const MagickInfo *) magick_attribute((__pure__)),
  102. GetMagickSeekableStream(const MagickInfo *) magick_attribute((__pure__)),
  103. IsMagickCoreInstantiated(void) magick_attribute((__pure__)),
  104. MagickComponentGenesis(void),
  105. UnregisterMagickInfo(const char *);
  106. extern const MagickExport MagickInfo
  107. *GetMagickInfo(const char *,ExceptionInfo *),
  108. **GetMagickInfoList(const char *,size_t *,ExceptionInfo *);
  109. extern MagickExport MagickInfo
  110. *RegisterMagickInfo(MagickInfo *),
  111. *SetMagickInfo(const char *);
  112. extern MagickExport MagickStatusType
  113. GetMagickThreadSupport(const MagickInfo *);
  114. extern MagickExport void
  115. MagickComponentTerminus(void),
  116. MagickCoreGenesis(const char *,const MagickBooleanType),
  117. MagickCoreTerminus(void);
  118. #if defined(__cplusplus) || defined(c_plusplus)
  119. }
  120. #endif
  121. #endif