blob: 6e505d0025d9d5acc1ba805cca734d8eeb4620f9 [file] [log] [blame]
cristy3ed852e2009-09-05 21:47:34 +00001/*
cristy1454be72011-12-19 01:52:48 +00002 Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization
cristy3ed852e2009-09-05 21:47:34 +00003 dedicated to making software imaging solutions freely available.
cristy4c08aed2011-07-01 19:47:50 +00004
cristy3ed852e2009-09-05 21:47:34 +00005 You may not use this file except in compliance with the License.
6 obtain a copy of the License at
cristy4c08aed2011-07-01 19:47:50 +00007
cristy3ed852e2009-09-05 21:47:34 +00008 http://www.imagemagick.org/script/license.php
cristy4c08aed2011-07-01 19:47:50 +00009
cristy3ed852e2009-09-05 21:47:34 +000010 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15
16 MagickCore image methods.
17*/
18#ifndef _MAGICKCORE_IMAGE_H
19#define _MAGICKCORE_IMAGE_H
20
21#if defined(__cplusplus) || defined(c_plusplus)
22extern "C" {
23#endif
24
cristy4c08aed2011-07-01 19:47:50 +000025#include <MagickCore/color.h>
cristy3ed852e2009-09-05 21:47:34 +000026
cristy4c08aed2011-07-01 19:47:50 +000027#define OpaqueAlpha ((Quantum) QuantumRange)
28#define TransparentAlpha ((Quantum) 0UL)
cristy3ed852e2009-09-05 21:47:34 +000029
30typedef enum
31{
32 UndefinedAlphaChannel,
33 ActivateAlphaChannel,
34 BackgroundAlphaChannel,
35 CopyAlphaChannel,
36 DeactivateAlphaChannel,
37 ExtractAlphaChannel,
38 OpaqueAlphaChannel,
cristy61808382012-01-30 01:24:49 +000039 RemoveAlphaChannel,
cristy3ed852e2009-09-05 21:47:34 +000040 SetAlphaChannel,
41 ShapeAlphaChannel,
cristy61808382012-01-30 01:24:49 +000042 TransparentAlphaChannel
cristy3ed852e2009-09-05 21:47:34 +000043} AlphaChannelType;
44
45typedef enum
46{
cristy5f1c1ff2010-12-23 21:38:06 +000047 UndefinedType,
cristy3ed852e2009-09-05 21:47:34 +000048 BilevelType,
49 GrayscaleType,
50 GrayscaleMatteType,
51 PaletteType,
52 PaletteMatteType,
53 TrueColorType,
54 TrueColorMatteType,
55 ColorSeparationType,
56 ColorSeparationMatteType,
57 OptimizeType,
58 PaletteBilevelMatteType
59} ImageType;
60
61typedef enum
62{
63 UndefinedInterlace,
64 NoInterlace,
65 LineInterlace,
66 PlaneInterlace,
67 PartitionInterlace,
68 GIFInterlace,
69 JPEGInterlace,
70 PNGInterlace
71} InterlaceType;
72
73typedef enum
74{
75 UndefinedOrientation,
76 TopLeftOrientation,
77 TopRightOrientation,
78 BottomRightOrientation,
79 BottomLeftOrientation,
80 LeftTopOrientation,
81 RightTopOrientation,
82 RightBottomOrientation,
83 LeftBottomOrientation
84} OrientationType;
85
86typedef enum
87{
88 UndefinedResolution,
89 PixelsPerInchResolution,
90 PixelsPerCentimeterResolution
91} ResolutionType;
92
93typedef struct _PrimaryInfo
94{
95 double
96 x,
97 y,
98 z;
99} PrimaryInfo;
100
101typedef struct _SegmentInfo
102{
103 double
104 x1,
105 y1,
106 x2,
107 y2;
108} SegmentInfo;
109
110typedef enum
111{
112 UndefinedTransmitType,
113 FileTransmitType,
114 BlobTransmitType,
115 StreamTransmitType,
116 ImageTransmitType
117} TransmitType;
118
119typedef struct _ChromaticityInfo
120{
121 PrimaryInfo
122 red_primary,
123 green_primary,
124 blue_primary,
125 white_point;
126} ChromaticityInfo;
127
cristy4c08aed2011-07-01 19:47:50 +0000128#include "MagickCore/blob.h"
129#include "MagickCore/colorspace.h"
130#include "MagickCore/cache-view.h"
131#include "MagickCore/color.h"
132#include "MagickCore/composite.h"
133#include "MagickCore/compress.h"
134#include "MagickCore/effect.h"
135#include "MagickCore/geometry.h"
136#include "MagickCore/layer.h"
137#include "MagickCore/locale_.h"
138#include "MagickCore/monitor.h"
139#include "MagickCore/pixel.h"
140#include "MagickCore/profile.h"
141#include "MagickCore/quantum.h"
142#include "MagickCore/resample.h"
143#include "MagickCore/resize.h"
144#include "MagickCore/semaphore.h"
145#include "MagickCore/stream.h"
146#include "MagickCore/timer.h"
cristy3ed852e2009-09-05 21:47:34 +0000147
148struct _Image
149{
150 ClassType
151 storage_class;
152
153 ColorspaceType
anthonyfd706f92012-01-19 04:22:02 +0000154 colorspace; /* colorspace of image data */
cristy3ed852e2009-09-05 21:47:34 +0000155
156 CompressionType
anthonyfd706f92012-01-19 04:22:02 +0000157 compression; /* compression of image when read/write */
cristy3ed852e2009-09-05 21:47:34 +0000158
cristybb503372010-05-27 20:51:26 +0000159 size_t
anthonyfd706f92012-01-19 04:22:02 +0000160 quality; /* compression quality setting, meaning varies */
cristy3ed852e2009-09-05 21:47:34 +0000161
162 OrientationType
anthonyfd706f92012-01-19 04:22:02 +0000163 orientation; /* photo orientation of image */
cristy3ed852e2009-09-05 21:47:34 +0000164
165 MagickBooleanType
anthonyfd706f92012-01-19 04:22:02 +0000166 taint, /* has image been modified since reading */
167 matte; /* is transparency channel defined and active */
cristy3ed852e2009-09-05 21:47:34 +0000168
cristybb503372010-05-27 20:51:26 +0000169 size_t
anthonyfd706f92012-01-19 04:22:02 +0000170 columns, /* physical size of image */
cristy3ed852e2009-09-05 21:47:34 +0000171 rows,
anthonyfd706f92012-01-19 04:22:02 +0000172 depth, /* depth of image on read/write */
173 colors; /* Size of color table, or actual color count */
174 /* Only valid if image is not DirectClass */
cristy3ed852e2009-09-05 21:47:34 +0000175
cristy101ab702011-10-13 13:06:32 +0000176 PixelInfo
cristy3ed852e2009-09-05 21:47:34 +0000177 *colormap,
anthonyfd706f92012-01-19 04:22:02 +0000178 background_color, /* current background color attribute */
179 border_color, /* current bordercolor attribute */
180 matte_color, /* current mattecolor attribute */
181 transparent_color; /* color for 'transparent' color index in GIF */
cristy3ed852e2009-09-05 21:47:34 +0000182
183 double
184 gamma;
185
186 ChromaticityInfo
187 chromaticity;
188
189 RenderingIntent
190 rendering_intent;
191
192 void
193 *profiles;
194
195 ResolutionType
anthony1e4df872011-03-19 14:10:59 +0000196 units; /* resolution/density ppi or ppc */
cristy3ed852e2009-09-05 21:47:34 +0000197
198 char
199 *montage,
200 *directory,
201 *geometry;
202
cristybb503372010-05-27 20:51:26 +0000203 ssize_t
cristy3ed852e2009-09-05 21:47:34 +0000204 offset;
205
cristy2a11bef2011-10-28 18:33:11 +0000206 PointInfo
207 resolution; /* image resolution/density */
cristy3ed852e2009-09-05 21:47:34 +0000208
209 RectangleInfo
anthony1e4df872011-03-19 14:10:59 +0000210 page, /* virtual canvas size and offset of image */
cristy4c08aed2011-07-01 19:47:50 +0000211 extract_info;
cristy3ed852e2009-09-05 21:47:34 +0000212
213 double
anthonye95d3f02011-10-12 10:58:48 +0000214 bias, /* FUTURE: depreciated -- convolve bias */
215 blur, /* FUTURE: depreciated -- resize file blur */
216 fuzz; /* current color fuzz attribute - make image_info */
cristy3ed852e2009-09-05 21:47:34 +0000217
218 FilterTypes
anthony1e4df872011-03-19 14:10:59 +0000219 filter; /* resize/distort filter to apply */
cristy3ed852e2009-09-05 21:47:34 +0000220
221 InterlaceType
222 interlace;
223
224 EndianType
anthony1e4df872011-03-19 14:10:59 +0000225 endian; /* raw data integer ordering on read/write */
cristy3ed852e2009-09-05 21:47:34 +0000226
227 GravityType
anthony1e4df872011-03-19 14:10:59 +0000228 gravity; /* Gravity attribute for positioning in image */
cristy3ed852e2009-09-05 21:47:34 +0000229
230 CompositeOperator
anthony1e4df872011-03-19 14:10:59 +0000231 compose; /* alpha composition method for layered images */
cristy3ed852e2009-09-05 21:47:34 +0000232
233 DisposeType
anthony1e4df872011-03-19 14:10:59 +0000234 dispose; /* GIF animation disposal method */
cristy3ed852e2009-09-05 21:47:34 +0000235
cristybb503372010-05-27 20:51:26 +0000236 size_t
anthony1e4df872011-03-19 14:10:59 +0000237 scene, /* index of image in multi-image file */
238 delay; /* Animation delay time */
cristy3ed852e2009-09-05 21:47:34 +0000239
cristybb503372010-05-27 20:51:26 +0000240 ssize_t
anthony1e4df872011-03-19 14:10:59 +0000241 ticks_per_second; /* units for delay time, default 100 for GIF */
cristy3ed852e2009-09-05 21:47:34 +0000242
cristybb503372010-05-27 20:51:26 +0000243 size_t
cristy3ed852e2009-09-05 21:47:34 +0000244 iterations,
245 total_colors;
246
cristybb503372010-05-27 20:51:26 +0000247 ssize_t
cristy3ed852e2009-09-05 21:47:34 +0000248 start_loop;
249
cristy5c4e2582011-09-11 19:21:03 +0000250 PixelInterpolateMethod
anthony1e4df872011-03-19 14:10:59 +0000251 interpolate; /* Interpolation of color for between pixel lookups */
cristy3ed852e2009-09-05 21:47:34 +0000252
253 MagickBooleanType
254 black_point_compensation;
255
cristy3ed852e2009-09-05 21:47:34 +0000256 RectangleInfo
257 tile_offset;
258
259 void
anthony1e4df872011-03-19 14:10:59 +0000260 *properties, /* per image properities */
261 *artifacts; /* per image sequence image artifacts */
cristy3ed852e2009-09-05 21:47:34 +0000262
263 ImageType
264 type;
265
266 MagickBooleanType
anthonyad98c292011-09-29 10:43:26 +0000267 dither; /* dithering on/off */
cristy81b8ce52010-02-05 01:53:17 +0000268
269 MagickSizeType
anthony8ea79832011-10-05 10:08:39 +0000270 extent; /* Size of image read from disk */
cristy73724512010-04-12 14:43:14 +0000271
272 MagickBooleanType
273 ping;
cristy0d267172011-04-25 20:13:48 +0000274
cristy10a6c612012-01-29 21:41:05 +0000275 MagickBooleanType
cristy183a5c72012-01-30 01:40:35 +0000276 mask;
cristy10a6c612012-01-29 21:41:05 +0000277
cristy0d267172011-04-25 20:13:48 +0000278 size_t
cristyed231572011-07-14 02:18:59 +0000279 number_channels,
cristyb3a73b52011-07-26 01:34:43 +0000280 number_meta_channels,
cristy4c08aed2011-07-01 19:47:50 +0000281 metacontent_extent;
282
cristybd5a96c2011-08-21 00:04:26 +0000283 ChannelType
anthonyad98c292011-09-29 10:43:26 +0000284 channel_mask;
cristy490408a2011-07-07 14:42:05 +0000285
cristyed231572011-07-14 02:18:59 +0000286 PixelChannelMap
cristybd5a96c2011-08-21 00:04:26 +0000287 *channel_map;
cristy4c08aed2011-07-01 19:47:50 +0000288
289 void
290 *cache;
291
292 ErrorInfo
293 error;
294
295 TimerInfo
296 timer;
297
298 MagickProgressMonitor
299 progress_monitor;
300
301 void
302 *client_data;
303
304 Ascii85Info
305 *ascii85;
306
307 ProfileInfo
cristy4c08aed2011-07-01 19:47:50 +0000308 *generic_profile;
309
310 char
anthony8ea79832011-10-05 10:08:39 +0000311 filename[MaxTextExtent], /* images input filename */
312 magick_filename[MaxTextExtent], /* given image filename (with read mods) */
313 magick[MaxTextExtent]; /* images file format (file magic) */
cristy4c08aed2011-07-01 19:47:50 +0000314
315 size_t
316 magick_columns,
317 magick_rows;
318
319 BlobInfo
anthony8ea79832011-10-05 10:08:39 +0000320 *blob; /* image file as in-memory string of 'extent' */
cristy4c08aed2011-07-01 19:47:50 +0000321
cristy4c08aed2011-07-01 19:47:50 +0000322 MagickBooleanType
anthony8ea79832011-10-05 10:08:39 +0000323 debug; /* debug output attribute */
cristy4c08aed2011-07-01 19:47:50 +0000324
325 volatile ssize_t
anthony8ea79832011-10-05 10:08:39 +0000326 reference_count; /* image data sharing memory management */
cristy4c08aed2011-07-01 19:47:50 +0000327
328 SemaphoreInfo
329 *semaphore;
330
331 struct _Image
332 *previous, /* Image sequence list links */
333 *list,
334 *next;
335
336 size_t
337 signature;
cristy3ed852e2009-09-05 21:47:34 +0000338};
339
340struct _ImageInfo
341{
342 CompressionType
anthonyfd706f92012-01-19 04:22:02 +0000343 compression; /* compression method when reading/saving image */
cristy3ed852e2009-09-05 21:47:34 +0000344
345 OrientationType
anthonyfd706f92012-01-19 04:22:02 +0000346 orientation; /* orientation setting */
cristy3ed852e2009-09-05 21:47:34 +0000347
348 MagickBooleanType
349 temporary,
anthony72feaa62012-01-17 06:46:23 +0000350 adjoin, /* save images to seperate scene files */
cristy3ed852e2009-09-05 21:47:34 +0000351 affirm,
352 antialias;
353
354 char
anthony72feaa62012-01-17 06:46:23 +0000355 *size, /* image generation size */
356 *extract, /* crop/resize string on image read */
cristy3ed852e2009-09-05 21:47:34 +0000357 *page,
anthony72feaa62012-01-17 06:46:23 +0000358 *scenes; /* scene numbers that is to be read in */
cristy3ed852e2009-09-05 21:47:34 +0000359
cristybb503372010-05-27 20:51:26 +0000360 size_t
anthony72feaa62012-01-17 06:46:23 +0000361 scene, /* starting value for image save numbering */
362 number_scenes, /* total number of images in list - for escapes */
anthonyfd706f92012-01-19 04:22:02 +0000363 depth; /* current read/save depth of images */
cristy3ed852e2009-09-05 21:47:34 +0000364
365 InterlaceType
anthony8ea79832011-10-05 10:08:39 +0000366 interlace; /* interlace for image write */
cristy3ed852e2009-09-05 21:47:34 +0000367
368 EndianType
anthony8ea79832011-10-05 10:08:39 +0000369 endian; /* integer endian order for raw image data */
cristy3ed852e2009-09-05 21:47:34 +0000370
371 ResolutionType
anthony8ea79832011-10-05 10:08:39 +0000372 units; /* denisty pixels/inch or pixel/cm */
cristy3ed852e2009-09-05 21:47:34 +0000373
cristybb503372010-05-27 20:51:26 +0000374 size_t
anthony8ea79832011-10-05 10:08:39 +0000375 quality; /* compression quality */
cristy3ed852e2009-09-05 21:47:34 +0000376
377 char
anthony8ea79832011-10-05 10:08:39 +0000378 *sampling_factor, /* JPEG write sampling factor */
379 *server_name, /* X windows server name - display/animate */
anthony72feaa62012-01-17 06:46:23 +0000380 *font, /* DUP for draw_info */
anthony8ea79832011-10-05 10:08:39 +0000381 *texture, /* montage/display background tile */
anthony72feaa62012-01-17 06:46:23 +0000382 *density; /* DUP for image and draw_info */
cristy3ed852e2009-09-05 21:47:34 +0000383
384 double
cristy947cb4c2011-10-20 18:41:46 +0000385 pointsize,
anthonye95d3f02011-10-12 10:58:48 +0000386 fuzz; /* current color fuzz attribute */
cristy3ed852e2009-09-05 21:47:34 +0000387
cristy101ab702011-10-13 13:06:32 +0000388 PixelInfo
anthony72feaa62012-01-17 06:46:23 +0000389 background_color, /* user set background color */
390 border_color, /* user set border color */
391 matte_color, /* matte (frame) color */
392 transparent_color; /* color for transparent index in color tables */
393 /* NB: fill color is only needed in draw_info! */
394 /* the same for undercolor (for font drawing) */
cristy3ed852e2009-09-05 21:47:34 +0000395
396 MagickBooleanType
anthonyfd706f92012-01-19 04:22:02 +0000397 dither, /* dither enable-disable */
398 monochrome; /* read/write pcl,pdf,ps,xps as monocrome image */
cristy3ed852e2009-09-05 21:47:34 +0000399
cristy3ed852e2009-09-05 21:47:34 +0000400 ColorspaceType
401 colorspace;
402
anthony72feaa62012-01-17 06:46:23 +0000403 CompositeOperator
404 compose;
405
cristy3ed852e2009-09-05 21:47:34 +0000406 ImageType
407 type;
408
409 PreviewType
410 preview_type;
411
cristybb503372010-05-27 20:51:26 +0000412 ssize_t
cristy3ed852e2009-09-05 21:47:34 +0000413 group;
414
415 MagickBooleanType
anthony8ea79832011-10-05 10:08:39 +0000416 ping, /* fast read image attributes, not image data */
417 verbose; /* verbose output enable/disable */
cristy3ed852e2009-09-05 21:47:34 +0000418
419 char
anthony1afdc7a2011-10-05 11:54:28 +0000420 *view;
cristy3ed852e2009-09-05 21:47:34 +0000421
422 ChannelType
423 channel;
424
cristy3ed852e2009-09-05 21:47:34 +0000425 void
anthony8ea79832011-10-05 10:08:39 +0000426 *options; /* splay tree of use options */
cristy3ed852e2009-09-05 21:47:34 +0000427
cristy4c08aed2011-07-01 19:47:50 +0000428 void
429 *profile;
430
431 MagickBooleanType
432 synchronize;
433
cristy3ed852e2009-09-05 21:47:34 +0000434 MagickProgressMonitor
435 progress_monitor;
436
437 void
438 *client_data,
439 *cache;
440
441 StreamHandler
442 stream;
443
444 FILE
445 *file;
446
447 void
448 *blob;
449
450 size_t
451 length;
452
453 char
anthony8ea79832011-10-05 10:08:39 +0000454 magick[MaxTextExtent], /* image file format (file magick) */
455 unique[MaxTextExtent], /* unique tempory filename - delegates */
456 zero[MaxTextExtent], /* unique filename ? - delegates */
457 filename[MaxTextExtent]; /* filename when reading/writing image */
cristy3ed852e2009-09-05 21:47:34 +0000458
459 MagickBooleanType
460 debug;
461
cristybb503372010-05-27 20:51:26 +0000462 size_t
cristy3ed852e2009-09-05 21:47:34 +0000463 signature;
cristy3ed852e2009-09-05 21:47:34 +0000464};
465
cristy8ea81222011-09-04 10:33:32 +0000466extern MagickExport const char
cristy8ea81222011-09-04 10:33:32 +0000467 DefaultTileGeometry[],
468 DefaultTileLabel[],
469 LoadImageTag[],
470 LoadImagesTag[],
471 PSDensityGeometry[],
472 PSPageGeometry[],
473 SaveImageTag[],
474 SaveImagesTag[];
475
476extern MagickExport const double
477 DefaultResolution;
478
cristy3ed852e2009-09-05 21:47:34 +0000479extern MagickExport ExceptionType
480 CatchImageException(Image *);
481
cristy15781e52009-12-05 23:05:27 +0000482extern MagickExport FILE
483 *GetImageInfoFile(const ImageInfo *);
484
cristy3ed852e2009-09-05 21:47:34 +0000485extern MagickExport Image
cristy9950d572011-10-01 18:22:35 +0000486 *AcquireImage(const ImageInfo *,ExceptionInfo *),
cristy3ed852e2009-09-05 21:47:34 +0000487 *AppendImages(const Image *,const MagickBooleanType,ExceptionInfo *),
cristy5ed838e2010-05-31 00:05:35 +0000488 *CloneImage(const Image *,const size_t,const size_t,const MagickBooleanType,
489 ExceptionInfo *),
cristy3139dc22011-07-08 00:11:42 +0000490 *CombineImages(const Image *,ExceptionInfo *),
cristy3ed852e2009-09-05 21:47:34 +0000491 *DestroyImage(Image *),
492 *GetImageClipMask(const Image *,ExceptionInfo *),
493 *GetImageMask(const Image *,ExceptionInfo *),
cristy0740a982011-10-13 15:01:01 +0000494 *NewMagickImage(const ImageInfo *,const size_t,const size_t,const PixelInfo *,
495 ExceptionInfo *),
cristy3ed852e2009-09-05 21:47:34 +0000496 *ReferenceImage(Image *),
cristyc8d63672012-01-11 13:03:13 +0000497 *SeparateImage(const Image *,const ChannelType,ExceptionInfo *),
cristy3139dc22011-07-08 00:11:42 +0000498 *SeparateImages(const Image *,ExceptionInfo *),
cristy4285d782011-02-09 20:12:28 +0000499 *SmushImages(const Image *,const MagickBooleanType,const ssize_t,
500 ExceptionInfo *);
cristy3ed852e2009-09-05 21:47:34 +0000501
502extern MagickExport ImageInfo
503 *AcquireImageInfo(void),
504 *CloneImageInfo(const ImageInfo *),
505 *DestroyImageInfo(ImageInfo *);
506
cristy3ed852e2009-09-05 21:47:34 +0000507extern MagickExport MagickBooleanType
cristy018f07f2011-09-04 21:15:19 +0000508 ClipImage(Image *,ExceptionInfo *),
509 ClipImagePath(Image *,const char *,const MagickBooleanType,ExceptionInfo *),
cristy3ed852e2009-09-05 21:47:34 +0000510 GetImageAlphaChannel(const Image *),
511 IsTaintImage(const Image *),
cristy3ed852e2009-09-05 21:47:34 +0000512 IsHighDynamicRangeImage(const Image *,ExceptionInfo *),
513 IsImageObject(const Image *),
514 ListMagickInfo(FILE *,ExceptionInfo *),
515 ModifyImage(Image **,ExceptionInfo *),
516 ResetImagePage(Image *,const char *),
cristye941a752011-10-15 01:52:48 +0000517 SetImageAlpha(Image *,const Quantum,ExceptionInfo *),
cristy63240882011-08-05 19:05:27 +0000518 SetImageAlphaChannel(Image *,const AlphaChannelType,ExceptionInfo *),
cristyea1a8aa2011-10-20 13:24:06 +0000519 SetImageBackgroundColor(Image *,ExceptionInfo *),
cristye941a752011-10-15 01:52:48 +0000520 SetImageColor(Image *,const PixelInfo *,ExceptionInfo *),
cristy63240882011-08-05 19:05:27 +0000521 SetImageExtent(Image *,const size_t,const size_t,ExceptionInfo *),
cristyd965a422010-03-03 17:47:35 +0000522 SetImageInfo(ImageInfo *,const unsigned int,ExceptionInfo *),
cristy018f07f2011-09-04 21:15:19 +0000523 SetImageMask(Image *,const Image *,ExceptionInfo *),
cristy574cc262011-08-05 01:23:58 +0000524 SetImageStorageClass(Image *,const ClassType,ExceptionInfo *),
cristy018f07f2011-09-04 21:15:19 +0000525 SetImageType(Image *,const ImageType,ExceptionInfo *),
cristye941a752011-10-15 01:52:48 +0000526 StripImage(Image *,ExceptionInfo *),
cristyea1a8aa2011-10-20 13:24:06 +0000527 SyncImage(Image *,ExceptionInfo *),
cristy6fccee12011-10-20 18:43:18 +0000528 SyncImageSettings(const ImageInfo *,Image *,ExceptionInfo *),
529 SyncImagesSettings(ImageInfo *,Image *,ExceptionInfo *);
cristy3ed852e2009-09-05 21:47:34 +0000530
531extern MagickExport size_t
cristy6fccee12011-10-20 18:43:18 +0000532 InterpretImageFilename(const ImageInfo *,Image *,const char *,int,char *,
533 ExceptionInfo *);
cristy3ed852e2009-09-05 21:47:34 +0000534
cristy5ed838e2010-05-31 00:05:35 +0000535extern MagickExport ssize_t
536 GetImageReferenceCount(Image *);
537
cristy3ed852e2009-09-05 21:47:34 +0000538extern MagickExport VirtualPixelMethod
539 GetImageVirtualPixelMethod(const Image *),
540 SetImageVirtualPixelMethod(const Image *,const VirtualPixelMethod);
541
542extern MagickExport void
cristy9950d572011-10-01 18:22:35 +0000543 AcquireNextImage(const ImageInfo *,Image *,ExceptionInfo *),
cristy3ed852e2009-09-05 21:47:34 +0000544 DestroyImagePixels(Image *),
545 DisassociateImageStream(Image *),
cristy3ed852e2009-09-05 21:47:34 +0000546 GetImageInfo(ImageInfo *),
547 SetImageInfoBlob(ImageInfo *,const void *,const size_t),
548 SetImageInfoFile(ImageInfo *,FILE *);
549
550#if defined(__cplusplus) || defined(c_plusplus)
551}
552#endif
553
554#endif