blob: 92efa1ee6dc7109379a2c68e41426fe77a2058ba [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>
cristy24855942012-08-28 11:25:09 +000026#include <MagickCore/pixel.h>
cristy3ed852e2009-09-05 21:47:34 +000027
cristy288a3532012-08-28 00:19:44 +000028#define OpaqueAlpha ((Quantum) QuantumRange)
29#define TransparentAlpha ((Quantum) 0)
cristy3ed852e2009-09-05 21:47:34 +000030
31typedef enum
32{
33 UndefinedAlphaChannel,
34 ActivateAlphaChannel,
35 BackgroundAlphaChannel,
36 CopyAlphaChannel,
37 DeactivateAlphaChannel,
38 ExtractAlphaChannel,
39 OpaqueAlphaChannel,
cristy61808382012-01-30 01:24:49 +000040 RemoveAlphaChannel,
cristy3ed852e2009-09-05 21:47:34 +000041 SetAlphaChannel,
42 ShapeAlphaChannel,
cristy61808382012-01-30 01:24:49 +000043 TransparentAlphaChannel
cristy3ed852e2009-09-05 21:47:34 +000044} AlphaChannelType;
45
46typedef enum
47{
cristy5f1c1ff2010-12-23 21:38:06 +000048 UndefinedType,
cristy3ed852e2009-09-05 21:47:34 +000049 BilevelType,
50 GrayscaleType,
51 GrayscaleMatteType,
52 PaletteType,
53 PaletteMatteType,
54 TrueColorType,
55 TrueColorMatteType,
56 ColorSeparationType,
57 ColorSeparationMatteType,
58 OptimizeType,
59 PaletteBilevelMatteType
60} ImageType;
61
62typedef enum
63{
64 UndefinedInterlace,
65 NoInterlace,
66 LineInterlace,
67 PlaneInterlace,
68 PartitionInterlace,
69 GIFInterlace,
70 JPEGInterlace,
71 PNGInterlace
72} InterlaceType;
73
74typedef enum
75{
76 UndefinedOrientation,
77 TopLeftOrientation,
78 TopRightOrientation,
79 BottomRightOrientation,
80 BottomLeftOrientation,
81 LeftTopOrientation,
82 RightTopOrientation,
83 RightBottomOrientation,
84 LeftBottomOrientation
85} OrientationType;
86
87typedef enum
88{
89 UndefinedResolution,
90 PixelsPerInchResolution,
91 PixelsPerCentimeterResolution
92} ResolutionType;
93
94typedef struct _PrimaryInfo
95{
96 double
97 x,
98 y,
99 z;
100} PrimaryInfo;
101
102typedef struct _SegmentInfo
103{
104 double
105 x1,
106 y1,
107 x2,
108 y2;
109} SegmentInfo;
110
111typedef enum
112{
113 UndefinedTransmitType,
114 FileTransmitType,
115 BlobTransmitType,
116 StreamTransmitType,
117 ImageTransmitType
118} TransmitType;
119
120typedef struct _ChromaticityInfo
121{
122 PrimaryInfo
123 red_primary,
124 green_primary,
125 blue_primary,
126 white_point;
127} ChromaticityInfo;
128
cristy4c08aed2011-07-01 19:47:50 +0000129#include "MagickCore/blob.h"
130#include "MagickCore/colorspace.h"
131#include "MagickCore/cache-view.h"
132#include "MagickCore/color.h"
133#include "MagickCore/composite.h"
134#include "MagickCore/compress.h"
135#include "MagickCore/effect.h"
136#include "MagickCore/geometry.h"
137#include "MagickCore/layer.h"
138#include "MagickCore/locale_.h"
139#include "MagickCore/monitor.h"
140#include "MagickCore/pixel.h"
141#include "MagickCore/profile.h"
142#include "MagickCore/quantum.h"
143#include "MagickCore/resample.h"
144#include "MagickCore/resize.h"
145#include "MagickCore/semaphore.h"
146#include "MagickCore/stream.h"
147#include "MagickCore/timer.h"
cristy3ed852e2009-09-05 21:47:34 +0000148
149struct _Image
150{
151 ClassType
152 storage_class;
153
154 ColorspaceType
anthonyfd706f92012-01-19 04:22:02 +0000155 colorspace; /* colorspace of image data */
cristy3ed852e2009-09-05 21:47:34 +0000156
157 CompressionType
anthonyfd706f92012-01-19 04:22:02 +0000158 compression; /* compression of image when read/write */
cristy3ed852e2009-09-05 21:47:34 +0000159
cristybb503372010-05-27 20:51:26 +0000160 size_t
anthonyfd706f92012-01-19 04:22:02 +0000161 quality; /* compression quality setting, meaning varies */
cristy3ed852e2009-09-05 21:47:34 +0000162
163 OrientationType
anthonyfd706f92012-01-19 04:22:02 +0000164 orientation; /* photo orientation of image */
cristy3ed852e2009-09-05 21:47:34 +0000165
166 MagickBooleanType
anthonyfd706f92012-01-19 04:22:02 +0000167 taint, /* has image been modified since reading */
168 matte; /* is transparency channel defined and active */
cristy3ed852e2009-09-05 21:47:34 +0000169
cristybb503372010-05-27 20:51:26 +0000170 size_t
anthonyfd706f92012-01-19 04:22:02 +0000171 columns, /* physical size of image */
cristy3ed852e2009-09-05 21:47:34 +0000172 rows,
anthonyfd706f92012-01-19 04:22:02 +0000173 depth, /* depth of image on read/write */
174 colors; /* Size of color table, or actual color count */
175 /* Only valid if image is not DirectClass */
cristy3ed852e2009-09-05 21:47:34 +0000176
cristy101ab702011-10-13 13:06:32 +0000177 PixelInfo
cristy3ed852e2009-09-05 21:47:34 +0000178 *colormap,
anthonyfd706f92012-01-19 04:22:02 +0000179 background_color, /* current background color attribute */
180 border_color, /* current bordercolor attribute */
181 matte_color, /* current mattecolor attribute */
182 transparent_color; /* color for 'transparent' color index in GIF */
cristy3ed852e2009-09-05 21:47:34 +0000183
184 double
185 gamma;
186
187 ChromaticityInfo
188 chromaticity;
189
190 RenderingIntent
191 rendering_intent;
192
193 void
194 *profiles;
195
196 ResolutionType
anthony1e4df872011-03-19 14:10:59 +0000197 units; /* resolution/density ppi or ppc */
cristy3ed852e2009-09-05 21:47:34 +0000198
199 char
200 *montage,
201 *directory,
202 *geometry;
203
cristybb503372010-05-27 20:51:26 +0000204 ssize_t
anthony30b912a2012-03-22 01:20:28 +0000205 offset; /* ??? */
cristy3ed852e2009-09-05 21:47:34 +0000206
cristy2a11bef2011-10-28 18:33:11 +0000207 PointInfo
208 resolution; /* image resolution/density */
cristy3ed852e2009-09-05 21:47:34 +0000209
210 RectangleInfo
anthony1e4df872011-03-19 14:10:59 +0000211 page, /* virtual canvas size and offset of image */
cristy4c08aed2011-07-01 19:47:50 +0000212 extract_info;
cristy3ed852e2009-09-05 21:47:34 +0000213
214 double
anthonye95d3f02011-10-12 10:58:48 +0000215 fuzz; /* current color fuzz attribute - make image_info */
cristy3ed852e2009-09-05 21:47:34 +0000216
217 FilterTypes
anthony1e4df872011-03-19 14:10:59 +0000218 filter; /* resize/distort filter to apply */
cristy3ed852e2009-09-05 21:47:34 +0000219
220 InterlaceType
221 interlace;
222
223 EndianType
anthony1e4df872011-03-19 14:10:59 +0000224 endian; /* raw data integer ordering on read/write */
cristy3ed852e2009-09-05 21:47:34 +0000225
226 GravityType
anthony1e4df872011-03-19 14:10:59 +0000227 gravity; /* Gravity attribute for positioning in image */
cristy3ed852e2009-09-05 21:47:34 +0000228
229 CompositeOperator
anthony1e4df872011-03-19 14:10:59 +0000230 compose; /* alpha composition method for layered images */
cristy3ed852e2009-09-05 21:47:34 +0000231
232 DisposeType
anthony1e4df872011-03-19 14:10:59 +0000233 dispose; /* GIF animation disposal method */
cristy3ed852e2009-09-05 21:47:34 +0000234
cristybb503372010-05-27 20:51:26 +0000235 size_t
anthony1e4df872011-03-19 14:10:59 +0000236 scene, /* index of image in multi-image file */
237 delay; /* Animation delay time */
cristy3ed852e2009-09-05 21:47:34 +0000238
cristybb503372010-05-27 20:51:26 +0000239 ssize_t
anthony1e4df872011-03-19 14:10:59 +0000240 ticks_per_second; /* units for delay time, default 100 for GIF */
cristy3ed852e2009-09-05 21:47:34 +0000241
cristybb503372010-05-27 20:51:26 +0000242 size_t
anthony30b912a2012-03-22 01:20:28 +0000243 iterations, /* ??? */
cristy3ed852e2009-09-05 21:47:34 +0000244 total_colors;
245
cristybb503372010-05-27 20:51:26 +0000246 ssize_t
anthony30b912a2012-03-22 01:20:28 +0000247 start_loop; /* ??? */
cristy3ed852e2009-09-05 21:47:34 +0000248
cristy5c4e2582011-09-11 19:21:03 +0000249 PixelInterpolateMethod
anthony1e4df872011-03-19 14:10:59 +0000250 interpolate; /* Interpolation of color for between pixel lookups */
cristy3ed852e2009-09-05 21:47:34 +0000251
252 MagickBooleanType
253 black_point_compensation;
254
cristy3ed852e2009-09-05 21:47:34 +0000255 RectangleInfo
256 tile_offset;
257
258 void
anthony1e4df872011-03-19 14:10:59 +0000259 *properties, /* per image properities */
260 *artifacts; /* per image sequence image artifacts */
cristy3ed852e2009-09-05 21:47:34 +0000261
262 ImageType
263 type;
264
265 MagickBooleanType
anthonyad98c292011-09-29 10:43:26 +0000266 dither; /* dithering on/off */
cristy81b8ce52010-02-05 01:53:17 +0000267
268 MagickSizeType
anthony8ea79832011-10-05 10:08:39 +0000269 extent; /* Size of image read from disk */
cristy73724512010-04-12 14:43:14 +0000270
271 MagickBooleanType
anthony30b912a2012-03-22 01:20:28 +0000272 ping; /* no image data read, just attributes */
cristy0d267172011-04-25 20:13:48 +0000273
cristy10a6c612012-01-29 21:41:05 +0000274 MagickBooleanType
cristy183a5c72012-01-30 01:40:35 +0000275 mask;
cristy10a6c612012-01-29 21:41:05 +0000276
cristy24855942012-08-28 11:25:09 +0000277 PixelTrait
cristy60ad7522012-08-28 11:27:30 +0000278 alpha_trait;
cristy288a3532012-08-28 00:19:44 +0000279
cristy0d267172011-04-25 20:13:48 +0000280 size_t
cristyed231572011-07-14 02:18:59 +0000281 number_channels,
cristyb3a73b52011-07-26 01:34:43 +0000282 number_meta_channels,
cristy4c08aed2011-07-01 19:47:50 +0000283 metacontent_extent;
284
cristybd5a96c2011-08-21 00:04:26 +0000285 ChannelType
anthonyad98c292011-09-29 10:43:26 +0000286 channel_mask;
cristy490408a2011-07-07 14:42:05 +0000287
cristyed231572011-07-14 02:18:59 +0000288 PixelChannelMap
cristybd5a96c2011-08-21 00:04:26 +0000289 *channel_map;
cristy4c08aed2011-07-01 19:47:50 +0000290
291 void
292 *cache;
293
294 ErrorInfo
295 error;
296
297 TimerInfo
298 timer;
299
300 MagickProgressMonitor
301 progress_monitor;
302
303 void
304 *client_data;
305
306 Ascii85Info
307 *ascii85;
308
309 ProfileInfo
cristy4c08aed2011-07-01 19:47:50 +0000310 *generic_profile;
311
312 char
anthony8ea79832011-10-05 10:08:39 +0000313 filename[MaxTextExtent], /* images input filename */
314 magick_filename[MaxTextExtent], /* given image filename (with read mods) */
315 magick[MaxTextExtent]; /* images file format (file magic) */
cristy4c08aed2011-07-01 19:47:50 +0000316
317 size_t
anthony30b912a2012-03-22 01:20:28 +0000318 magick_columns, /* size of image when read/created */
cristy4c08aed2011-07-01 19:47:50 +0000319 magick_rows;
320
321 BlobInfo
anthony8ea79832011-10-05 10:08:39 +0000322 *blob; /* image file as in-memory string of 'extent' */
cristy4c08aed2011-07-01 19:47:50 +0000323
cristy4c08aed2011-07-01 19:47:50 +0000324 MagickBooleanType
anthony8ea79832011-10-05 10:08:39 +0000325 debug; /* debug output attribute */
cristy4c08aed2011-07-01 19:47:50 +0000326
327 volatile ssize_t
anthony8ea79832011-10-05 10:08:39 +0000328 reference_count; /* image data sharing memory management */
cristy4c08aed2011-07-01 19:47:50 +0000329
330 SemaphoreInfo
331 *semaphore;
332
anthony007bad32012-07-28 10:52:03 +0000333
cristy4c08aed2011-07-01 19:47:50 +0000334 struct _Image
anthony007bad32012-07-28 10:52:03 +0000335 *list, /* Undo/Redo image processing list (for display) */
336 *previous, /* Image list links */
cristy4c08aed2011-07-01 19:47:50 +0000337 *next;
338
339 size_t
340 signature;
cristy3ed852e2009-09-05 21:47:34 +0000341};
342
343struct _ImageInfo
344{
345 CompressionType
anthonyfd706f92012-01-19 04:22:02 +0000346 compression; /* compression method when reading/saving image */
cristy3ed852e2009-09-05 21:47:34 +0000347
348 OrientationType
anthonyfd706f92012-01-19 04:22:02 +0000349 orientation; /* orientation setting */
cristy3ed852e2009-09-05 21:47:34 +0000350
351 MagickBooleanType
anthonyd5daafa2012-03-28 12:49:10 +0000352 temporary, /* image file to be deleted after read "empemeral:" */
anthony72feaa62012-01-17 06:46:23 +0000353 adjoin, /* save images to seperate scene files */
cristy3ed852e2009-09-05 21:47:34 +0000354 affirm,
355 antialias;
356
357 char
anthony72feaa62012-01-17 06:46:23 +0000358 *size, /* image generation size */
359 *extract, /* crop/resize string on image read */
cristy3ed852e2009-09-05 21:47:34 +0000360 *page,
anthony72feaa62012-01-17 06:46:23 +0000361 *scenes; /* scene numbers that is to be read in */
cristy3ed852e2009-09-05 21:47:34 +0000362
cristybb503372010-05-27 20:51:26 +0000363 size_t
anthony72feaa62012-01-17 06:46:23 +0000364 scene, /* starting value for image save numbering */
365 number_scenes, /* total number of images in list - for escapes */
anthonyfd706f92012-01-19 04:22:02 +0000366 depth; /* current read/save depth of images */
cristy3ed852e2009-09-05 21:47:34 +0000367
368 InterlaceType
anthony8ea79832011-10-05 10:08:39 +0000369 interlace; /* interlace for image write */
cristy3ed852e2009-09-05 21:47:34 +0000370
371 EndianType
anthony8ea79832011-10-05 10:08:39 +0000372 endian; /* integer endian order for raw image data */
cristy3ed852e2009-09-05 21:47:34 +0000373
374 ResolutionType
anthony8ea79832011-10-05 10:08:39 +0000375 units; /* denisty pixels/inch or pixel/cm */
cristy3ed852e2009-09-05 21:47:34 +0000376
cristybb503372010-05-27 20:51:26 +0000377 size_t
anthony8ea79832011-10-05 10:08:39 +0000378 quality; /* compression quality */
cristy3ed852e2009-09-05 21:47:34 +0000379
380 char
anthony8ea79832011-10-05 10:08:39 +0000381 *sampling_factor, /* JPEG write sampling factor */
382 *server_name, /* X windows server name - display/animate */
anthony72feaa62012-01-17 06:46:23 +0000383 *font, /* DUP for draw_info */
anthony8ea79832011-10-05 10:08:39 +0000384 *texture, /* montage/display background tile */
anthony72feaa62012-01-17 06:46:23 +0000385 *density; /* DUP for image and draw_info */
cristy3ed852e2009-09-05 21:47:34 +0000386
387 double
cristy947cb4c2011-10-20 18:41:46 +0000388 pointsize,
anthonye95d3f02011-10-12 10:58:48 +0000389 fuzz; /* current color fuzz attribute */
cristy3ed852e2009-09-05 21:47:34 +0000390
cristy101ab702011-10-13 13:06:32 +0000391 PixelInfo
anthony72feaa62012-01-17 06:46:23 +0000392 background_color, /* user set background color */
393 border_color, /* user set border color */
394 matte_color, /* matte (frame) color */
395 transparent_color; /* color for transparent index in color tables */
396 /* NB: fill color is only needed in draw_info! */
397 /* the same for undercolor (for font drawing) */
cristy3ed852e2009-09-05 21:47:34 +0000398
399 MagickBooleanType
anthonyfd706f92012-01-19 04:22:02 +0000400 dither, /* dither enable-disable */
401 monochrome; /* read/write pcl,pdf,ps,xps as monocrome image */
cristy3ed852e2009-09-05 21:47:34 +0000402
cristy3ed852e2009-09-05 21:47:34 +0000403 ColorspaceType
404 colorspace;
405
anthony72feaa62012-01-17 06:46:23 +0000406 CompositeOperator
407 compose;
408
cristy3ed852e2009-09-05 21:47:34 +0000409 ImageType
410 type;
411
412 PreviewType
413 preview_type;
414
cristybb503372010-05-27 20:51:26 +0000415 ssize_t
cristy3ed852e2009-09-05 21:47:34 +0000416 group;
417
418 MagickBooleanType
anthony8ea79832011-10-05 10:08:39 +0000419 ping, /* fast read image attributes, not image data */
420 verbose; /* verbose output enable/disable */
cristy3ed852e2009-09-05 21:47:34 +0000421
422 char
anthony1afdc7a2011-10-05 11:54:28 +0000423 *view;
cristy3ed852e2009-09-05 21:47:34 +0000424
425 ChannelType
426 channel;
427
cristy3ed852e2009-09-05 21:47:34 +0000428 void
anthony8ea79832011-10-05 10:08:39 +0000429 *options; /* splay tree of use options */
cristy3ed852e2009-09-05 21:47:34 +0000430
cristy4c08aed2011-07-01 19:47:50 +0000431 void
432 *profile;
433
434 MagickBooleanType
435 synchronize;
436
cristy3ed852e2009-09-05 21:47:34 +0000437 MagickProgressMonitor
438 progress_monitor;
439
440 void
441 *client_data,
442 *cache;
443
444 StreamHandler
445 stream;
446
447 FILE
448 *file;
449
450 void
451 *blob;
452
453 size_t
454 length;
455
456 char
anthony8ea79832011-10-05 10:08:39 +0000457 magick[MaxTextExtent], /* image file format (file magick) */
458 unique[MaxTextExtent], /* unique tempory filename - delegates */
459 zero[MaxTextExtent], /* unique filename ? - delegates */
460 filename[MaxTextExtent]; /* filename when reading/writing image */
cristy3ed852e2009-09-05 21:47:34 +0000461
462 MagickBooleanType
463 debug;
464
cristybb503372010-05-27 20:51:26 +0000465 size_t
cristy3ed852e2009-09-05 21:47:34 +0000466 signature;
cristy3ed852e2009-09-05 21:47:34 +0000467};
468
cristycf1296e2012-08-26 23:40:49 +0000469extern MagickExport ChannelType
470 SetImageChannelMask(Image *,const ChannelType);
471
cristy8ea81222011-09-04 10:33:32 +0000472extern MagickExport const char
cristy8ea81222011-09-04 10:33:32 +0000473 DefaultTileGeometry[],
474 DefaultTileLabel[],
475 LoadImageTag[],
476 LoadImagesTag[],
477 PSDensityGeometry[],
478 PSPageGeometry[],
479 SaveImageTag[],
480 SaveImagesTag[];
481
482extern MagickExport const double
483 DefaultResolution;
484
cristy3ed852e2009-09-05 21:47:34 +0000485extern MagickExport ExceptionType
486 CatchImageException(Image *);
487
cristy15781e52009-12-05 23:05:27 +0000488extern MagickExport FILE
489 *GetImageInfoFile(const ImageInfo *);
490
cristy3ed852e2009-09-05 21:47:34 +0000491extern MagickExport Image
cristy9950d572011-10-01 18:22:35 +0000492 *AcquireImage(const ImageInfo *,ExceptionInfo *),
cristy3ed852e2009-09-05 21:47:34 +0000493 *AppendImages(const Image *,const MagickBooleanType,ExceptionInfo *),
cristy5ed838e2010-05-31 00:05:35 +0000494 *CloneImage(const Image *,const size_t,const size_t,const MagickBooleanType,
495 ExceptionInfo *),
cristy3ed852e2009-09-05 21:47:34 +0000496 *DestroyImage(Image *),
497 *GetImageClipMask(const Image *,ExceptionInfo *),
498 *GetImageMask(const Image *,ExceptionInfo *),
cristy0740a982011-10-13 15:01:01 +0000499 *NewMagickImage(const ImageInfo *,const size_t,const size_t,const PixelInfo *,
500 ExceptionInfo *),
cristy3ed852e2009-09-05 21:47:34 +0000501 *ReferenceImage(Image *),
cristy4285d782011-02-09 20:12:28 +0000502 *SmushImages(const Image *,const MagickBooleanType,const ssize_t,
503 ExceptionInfo *);
cristy3ed852e2009-09-05 21:47:34 +0000504
505extern MagickExport ImageInfo
506 *AcquireImageInfo(void),
507 *CloneImageInfo(const ImageInfo *),
508 *DestroyImageInfo(ImageInfo *);
509
cristy3ed852e2009-09-05 21:47:34 +0000510extern MagickExport MagickBooleanType
cristy018f07f2011-09-04 21:15:19 +0000511 ClipImage(Image *,ExceptionInfo *),
512 ClipImagePath(Image *,const char *,const MagickBooleanType,ExceptionInfo *),
cristy3ed852e2009-09-05 21:47:34 +0000513 GetImageAlphaChannel(const Image *),
514 IsTaintImage(const Image *),
cristy3ed852e2009-09-05 21:47:34 +0000515 IsHighDynamicRangeImage(const Image *,ExceptionInfo *),
516 IsImageObject(const Image *),
517 ListMagickInfo(FILE *,ExceptionInfo *),
518 ModifyImage(Image **,ExceptionInfo *),
519 ResetImagePage(Image *,const char *),
cristye941a752011-10-15 01:52:48 +0000520 SetImageAlpha(Image *,const Quantum,ExceptionInfo *),
cristy63240882011-08-05 19:05:27 +0000521 SetImageAlphaChannel(Image *,const AlphaChannelType,ExceptionInfo *),
cristyea1a8aa2011-10-20 13:24:06 +0000522 SetImageBackgroundColor(Image *,ExceptionInfo *),
cristye941a752011-10-15 01:52:48 +0000523 SetImageColor(Image *,const PixelInfo *,ExceptionInfo *),
cristy63240882011-08-05 19:05:27 +0000524 SetImageExtent(Image *,const size_t,const size_t,ExceptionInfo *),
cristyd965a422010-03-03 17:47:35 +0000525 SetImageInfo(ImageInfo *,const unsigned int,ExceptionInfo *),
cristy018f07f2011-09-04 21:15:19 +0000526 SetImageMask(Image *,const Image *,ExceptionInfo *),
cristy574cc262011-08-05 01:23:58 +0000527 SetImageStorageClass(Image *,const ClassType,ExceptionInfo *),
cristye941a752011-10-15 01:52:48 +0000528 StripImage(Image *,ExceptionInfo *),
cristyea1a8aa2011-10-20 13:24:06 +0000529 SyncImage(Image *,ExceptionInfo *),
cristy6fccee12011-10-20 18:43:18 +0000530 SyncImageSettings(const ImageInfo *,Image *,ExceptionInfo *),
531 SyncImagesSettings(ImageInfo *,Image *,ExceptionInfo *);
cristy3ed852e2009-09-05 21:47:34 +0000532
533extern MagickExport size_t
cristy6fccee12011-10-20 18:43:18 +0000534 InterpretImageFilename(const ImageInfo *,Image *,const char *,int,char *,
535 ExceptionInfo *);
cristy3ed852e2009-09-05 21:47:34 +0000536
cristy5ed838e2010-05-31 00:05:35 +0000537extern MagickExport ssize_t
538 GetImageReferenceCount(Image *);
539
cristy3ed852e2009-09-05 21:47:34 +0000540extern MagickExport VirtualPixelMethod
541 GetImageVirtualPixelMethod(const Image *),
cristy387430f2012-02-07 13:09:46 +0000542 SetImageVirtualPixelMethod(Image *,const VirtualPixelMethod,ExceptionInfo *);
cristy3ed852e2009-09-05 21:47:34 +0000543
544extern MagickExport void
cristy9950d572011-10-01 18:22:35 +0000545 AcquireNextImage(const ImageInfo *,Image *,ExceptionInfo *),
cristy3ed852e2009-09-05 21:47:34 +0000546 DestroyImagePixels(Image *),
547 DisassociateImageStream(Image *),
cristy3ed852e2009-09-05 21:47:34 +0000548 GetImageInfo(ImageInfo *),
549 SetImageInfoBlob(ImageInfo *,const void *,const size_t),
550 SetImageInfoFile(ImageInfo *,FILE *);
551
552#if defined(__cplusplus) || defined(c_plusplus)
553}
554#endif
555
556#endif