PageRenderTime 52ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/branches/ImageMagick-6.5.7/magick/image.h

https://github.com/trevor/ImageMagick
C Header | 550 lines | 418 code | 115 blank | 17 comment | 2 complexity | c2d76f7e12b09a0ec24368ffdf080b05 MD5 | raw file
  1. /*
  2. Copyright 1999-2009 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.
  5. obtain a copy of the License at
  6. http://www.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 image methods.
  13. */
  14. #ifndef _MAGICKCORE_IMAGE_H
  15. #define _MAGICKCORE_IMAGE_H
  16. #if defined(__cplusplus) || defined(c_plusplus)
  17. extern "C" {
  18. #endif
  19. #include <magick/color.h>
  20. #define OpaqueOpacity ((Quantum) 0UL)
  21. #define TransparentOpacity ((Quantum) QuantumRange)
  22. typedef enum
  23. {
  24. UndefinedAlphaChannel,
  25. ActivateAlphaChannel,
  26. BackgroundAlphaChannel,
  27. CopyAlphaChannel,
  28. DeactivateAlphaChannel,
  29. ExtractAlphaChannel,
  30. OpaqueAlphaChannel,
  31. ResetAlphaChannel, /* deprecated */
  32. SetAlphaChannel,
  33. ShapeAlphaChannel,
  34. TransparentAlphaChannel
  35. } AlphaChannelType;
  36. typedef enum
  37. {
  38. UndefinedType,
  39. BilevelType,
  40. GrayscaleType,
  41. GrayscaleMatteType,
  42. PaletteType,
  43. PaletteMatteType,
  44. TrueColorType,
  45. TrueColorMatteType,
  46. ColorSeparationType,
  47. ColorSeparationMatteType,
  48. OptimizeType,
  49. PaletteBilevelMatteType
  50. } ImageType;
  51. typedef enum
  52. {
  53. UndefinedInterlace,
  54. NoInterlace,
  55. LineInterlace,
  56. PlaneInterlace,
  57. PartitionInterlace,
  58. GIFInterlace,
  59. JPEGInterlace,
  60. PNGInterlace
  61. } InterlaceType;
  62. typedef enum
  63. {
  64. UndefinedOrientation,
  65. TopLeftOrientation,
  66. TopRightOrientation,
  67. BottomRightOrientation,
  68. BottomLeftOrientation,
  69. LeftTopOrientation,
  70. RightTopOrientation,
  71. RightBottomOrientation,
  72. LeftBottomOrientation
  73. } OrientationType;
  74. typedef enum
  75. {
  76. UndefinedResolution,
  77. PixelsPerInchResolution,
  78. PixelsPerCentimeterResolution
  79. } ResolutionType;
  80. typedef struct _PrimaryInfo
  81. {
  82. double
  83. x,
  84. y,
  85. z;
  86. } PrimaryInfo;
  87. typedef struct _SegmentInfo
  88. {
  89. double
  90. x1,
  91. y1,
  92. x2,
  93. y2;
  94. } SegmentInfo;
  95. typedef enum
  96. {
  97. UndefinedTransmitType,
  98. FileTransmitType,
  99. BlobTransmitType,
  100. StreamTransmitType,
  101. ImageTransmitType
  102. } TransmitType;
  103. typedef struct _ChromaticityInfo
  104. {
  105. PrimaryInfo
  106. red_primary,
  107. green_primary,
  108. blue_primary,
  109. white_point;
  110. } ChromaticityInfo;
  111. #include "magick/blob.h"
  112. #include "magick/colorspace.h"
  113. #include "magick/cache-view.h"
  114. #include "magick/color.h"
  115. #include "magick/composite.h"
  116. #include "magick/compress.h"
  117. #include "magick/effect.h"
  118. #include "magick/geometry.h"
  119. #include "magick/layer.h"
  120. #include "magick/monitor.h"
  121. #include "magick/pixel.h"
  122. #include "magick/profile.h"
  123. #include "magick/quantum.h"
  124. #include "magick/resample.h"
  125. #include "magick/resize.h"
  126. #include "magick/semaphore.h"
  127. #include "magick/stream.h"
  128. #include "magick/timer.h"
  129. struct _Image
  130. {
  131. ClassType
  132. storage_class;
  133. ColorspaceType
  134. colorspace;
  135. CompressionType
  136. compression;
  137. unsigned long
  138. quality;
  139. OrientationType
  140. orientation;
  141. MagickBooleanType
  142. taint,
  143. matte;
  144. unsigned long
  145. columns,
  146. rows,
  147. depth,
  148. colors;
  149. PixelPacket
  150. *colormap,
  151. background_color,
  152. border_color,
  153. matte_color;
  154. double
  155. gamma;
  156. ChromaticityInfo
  157. chromaticity;
  158. RenderingIntent
  159. rendering_intent;
  160. void
  161. *profiles;
  162. ResolutionType
  163. units;
  164. char
  165. *montage,
  166. *directory,
  167. *geometry;
  168. long
  169. offset;
  170. double
  171. x_resolution,
  172. y_resolution;
  173. RectangleInfo
  174. page,
  175. extract_info,
  176. tile_info; /* deprecated */
  177. double
  178. bias,
  179. blur, /* deprecated */
  180. fuzz;
  181. FilterTypes
  182. filter;
  183. InterlaceType
  184. interlace;
  185. EndianType
  186. endian;
  187. GravityType
  188. gravity;
  189. CompositeOperator
  190. compose;
  191. DisposeType
  192. dispose;
  193. struct _Image
  194. *clip_mask;
  195. unsigned long
  196. scene,
  197. delay;
  198. long
  199. ticks_per_second;
  200. unsigned long
  201. iterations,
  202. total_colors;
  203. long
  204. start_loop;
  205. ErrorInfo
  206. error;
  207. TimerInfo
  208. timer;
  209. MagickProgressMonitor
  210. progress_monitor;
  211. void
  212. *client_data,
  213. *cache,
  214. *attributes; /* deprecated */
  215. Ascii85Info
  216. *ascii85;
  217. BlobInfo
  218. *blob;
  219. char
  220. filename[MaxTextExtent],
  221. magick_filename[MaxTextExtent],
  222. magick[MaxTextExtent];
  223. unsigned long
  224. magick_columns,
  225. magick_rows;
  226. ExceptionInfo
  227. exception;
  228. MagickBooleanType
  229. debug;
  230. volatile long
  231. reference_count;
  232. SemaphoreInfo
  233. *semaphore;
  234. ProfileInfo
  235. color_profile,
  236. iptc_profile,
  237. *generic_profile;
  238. unsigned long
  239. generic_profiles; /* this & ProfileInfo is deprecated */
  240. unsigned long
  241. signature;
  242. struct _Image
  243. *previous,
  244. *list,
  245. *next;
  246. InterpolatePixelMethod
  247. interpolate;
  248. MagickBooleanType
  249. black_point_compensation;
  250. PixelPacket
  251. transparent_color;
  252. struct _Image
  253. *mask;
  254. RectangleInfo
  255. tile_offset;
  256. void
  257. *properties,
  258. *artifacts;
  259. ImageType
  260. type;
  261. MagickBooleanType
  262. dither;
  263. };
  264. struct _ImageInfo
  265. {
  266. CompressionType
  267. compression;
  268. OrientationType
  269. orientation;
  270. MagickBooleanType
  271. temporary,
  272. adjoin,
  273. affirm,
  274. antialias;
  275. char
  276. *size,
  277. *extract,
  278. *page,
  279. *scenes;
  280. unsigned long
  281. scene,
  282. number_scenes,
  283. depth;
  284. InterlaceType
  285. interlace;
  286. EndianType
  287. endian;
  288. ResolutionType
  289. units;
  290. unsigned long
  291. quality;
  292. char
  293. *sampling_factor,
  294. *server_name,
  295. *font,
  296. *texture,
  297. *density;
  298. double
  299. pointsize,
  300. fuzz;
  301. PixelPacket
  302. background_color,
  303. border_color,
  304. matte_color;
  305. MagickBooleanType
  306. dither,
  307. monochrome;
  308. unsigned long
  309. colors;
  310. ColorspaceType
  311. colorspace;
  312. ImageType
  313. type;
  314. PreviewType
  315. preview_type;
  316. long
  317. group;
  318. MagickBooleanType
  319. ping,
  320. verbose;
  321. char
  322. *view,
  323. *authenticate;
  324. ChannelType
  325. channel;
  326. Image
  327. *attributes; /* deprecated */
  328. void
  329. *options;
  330. MagickProgressMonitor
  331. progress_monitor;
  332. void
  333. *client_data,
  334. *cache;
  335. StreamHandler
  336. stream;
  337. FILE
  338. *file;
  339. void
  340. *blob;
  341. size_t
  342. length;
  343. char
  344. magick[MaxTextExtent],
  345. unique[MaxTextExtent],
  346. zero[MaxTextExtent],
  347. filename[MaxTextExtent];
  348. MagickBooleanType
  349. debug;
  350. char
  351. *tile; /* deprecated */
  352. unsigned long
  353. subimage, /* deprecated */
  354. subrange; /* deprecated */
  355. PixelPacket
  356. pen; /* deprecated */
  357. unsigned long
  358. signature;
  359. VirtualPixelMethod
  360. virtual_pixel_method;
  361. PixelPacket
  362. transparent_color;
  363. void
  364. *profile;
  365. MagickBooleanType
  366. synchronize;
  367. };
  368. extern MagickExport ExceptionType
  369. CatchImageException(Image *);
  370. extern MagickExport Image
  371. *AcquireImage(const ImageInfo *),
  372. *AppendImages(const Image *,const MagickBooleanType,ExceptionInfo *),
  373. *CloneImage(const Image *,const unsigned long,const unsigned long,
  374. const MagickBooleanType,ExceptionInfo *),
  375. *CombineImages(const Image *,const ChannelType,ExceptionInfo *),
  376. *DestroyImage(Image *),
  377. *GetImageClipMask(const Image *,ExceptionInfo *),
  378. *GetImageMask(const Image *,ExceptionInfo *),
  379. *NewMagickImage(const ImageInfo *,const unsigned long,const unsigned long,
  380. const MagickPixelPacket *),
  381. *ReferenceImage(Image *),
  382. *SeparateImages(const Image *,const ChannelType,ExceptionInfo *);
  383. extern MagickExport ImageInfo
  384. *AcquireImageInfo(void),
  385. *CloneImageInfo(const ImageInfo *),
  386. *DestroyImageInfo(ImageInfo *);
  387. extern MagickExport long
  388. GetImageReferenceCount(Image *);
  389. extern MagickExport MagickBooleanType
  390. AcquireImageColormap(Image *,const unsigned long),
  391. ClipImage(Image *),
  392. ClipImagePath(Image *,const char *,const MagickBooleanType),
  393. GetImageAlphaChannel(const Image *),
  394. IsTaintImage(const Image *),
  395. IsMagickConflict(const char *),
  396. IsHighDynamicRangeImage(const Image *,ExceptionInfo *),
  397. IsImageObject(const Image *),
  398. ListMagickInfo(FILE *,ExceptionInfo *),
  399. ModifyImage(Image **,ExceptionInfo *),
  400. ResetImagePage(Image *,const char *),
  401. SeparateImageChannel(Image *,const ChannelType),
  402. SetImageAlphaChannel(Image *,const AlphaChannelType),
  403. SetImageBackgroundColor(Image *),
  404. SetImageClipMask(Image *,const Image *),
  405. SetImageExtent(Image *,const unsigned long,const unsigned long),
  406. SetImageInfo(ImageInfo *,const MagickBooleanType,ExceptionInfo *),
  407. SetImageMask(Image *,const Image *),
  408. SetImageOpacity(Image *,const Quantum),
  409. SetImageStorageClass(Image *,const ClassType),
  410. SetImageType(Image *,const ImageType),
  411. StripImage(Image *),
  412. SyncImage(Image *),
  413. SyncImageSettings(const ImageInfo *,Image *),
  414. SyncImagesSettings(ImageInfo *,Image *);
  415. extern MagickExport size_t
  416. InterpretImageFilename(const ImageInfo *,Image *,const char *,int,char *);
  417. extern MagickExport VirtualPixelMethod
  418. GetImageVirtualPixelMethod(const Image *),
  419. SetImageVirtualPixelMethod(const Image *,const VirtualPixelMethod);
  420. extern MagickExport void
  421. AcquireNextImage(const ImageInfo *,Image *),
  422. DestroyImagePixels(Image *),
  423. DisassociateImageStream(Image *),
  424. GetImageException(Image *,ExceptionInfo *),
  425. GetImageInfo(ImageInfo *),
  426. SetImageInfoBlob(ImageInfo *,const void *,const size_t),
  427. SetImageInfoFile(ImageInfo *,FILE *);
  428. #if defined(__cplusplus) || defined(c_plusplus)
  429. }
  430. #endif
  431. #endif