2 Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization
3 dedicated to making software imaging solutions freely available.
5 You may not use this file except in compliance with the License.
6 obtain a copy of the License at
8 http://www.imagemagick.org/script/license.php
10 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.
16 MagickCore image methods.
18 #ifndef _MAGICKCORE_IMAGE_H
19 #define _MAGICKCORE_IMAGE_H
21 #if defined(__cplusplus) || defined(c_plusplus)
25 #include <magick/color.h>
27 #define OpaqueOpacity ((Quantum) 0UL)
28 #define TransparentOpacity ((Quantum) QuantumRange)
32 UndefinedAlphaChannel,
34 BackgroundAlphaChannel,
36 DeactivateAlphaChannel,
39 ResetAlphaChannel, /* deprecated */
42 TransparentAlphaChannel
56 ColorSeparationMatteType,
58 PaletteBilevelMatteType
78 BottomRightOrientation,
79 BottomLeftOrientation,
82 RightBottomOrientation,
89 PixelsPerInchResolution,
90 PixelsPerCentimeterResolution
93 typedef struct _PrimaryInfo
101 typedef struct _SegmentInfo
112 UndefinedTransmitType,
119 typedef struct _ChromaticityInfo
128 #include "magick/blob.h"
129 #include "magick/colorspace.h"
130 #include "magick/cache-view.h"
131 #include "magick/color.h"
132 #include "magick/composite.h"
133 #include "magick/compress.h"
134 #include "magick/effect.h"
135 #include "magick/geometry.h"
136 #include "magick/layer.h"
137 #include "magick/locale_.h"
138 #include "magick/monitor.h"
139 #include "magick/pixel.h"
140 #include "magick/profile.h"
141 #include "magick/quantum.h"
142 #include "magick/resample.h"
143 #include "magick/resize.h"
144 #include "magick/semaphore.h"
145 #include "magick/stream.h"
146 #include "magick/timer.h"
154 colorspace; /* colorspace of image data */
157 compression; /* compression of image when read/write */
160 quality; /* compression quality setting, meaning varies */
163 orientation; /* photo orientation of image */
166 taint, /* has image been modified since reading */
167 matte; /* is transparency channel defined and active */
170 columns, /* physical size of image */
172 depth, /* depth of image on read/write */
173 colors; /* size of color table on read */
177 background_color, /* current background color attribute */
178 border_color, /* current bordercolor attribute */
179 matte_color; /* current mattecolor attribute */
194 units; /* resolution/density ppi or ppc */
205 x_resolution, /* image resolution/density */
209 page, /* virtual canvas size and offset of image */
211 tile_info; /* deprecated */
215 blur, /* deprecated */
216 fuzz; /* current color fuzz attribute */
219 filter; /* resize/distort filter to apply */
225 endian; /* raw data integer ordering on read/write */
228 gravity; /* Gravity attribute for positioning in image */
231 compose; /* alpha composition method for layered images */
234 dispose; /* GIF animation disposal method */
240 scene, /* index of image in multi-image file */
241 delay; /* Animation delay time */
244 ticks_per_second; /* units for delay time, default 100 for GIF */
259 MagickProgressMonitor
265 *attributes; /* deprecated */
274 filename[MaxTextExtent], /* images input filename */
275 magick_filename[MaxTextExtent],
276 magick[MaxTextExtent];
283 exception; /* Error handling report */
286 debug; /* debug output attribute */
300 generic_profiles; /* this & ProfileInfo is deprecated */
306 *previous, /* Image sequence list links */
310 InterpolatePixelMethod
311 interpolate; /* Interpolation of color for between pixel lookups */
314 black_point_compensation;
317 transparent_color; /* color for 'transparent' color index in GIF */
326 *properties, /* per image properities */
327 *artifacts; /* per image sequence image artifacts */
333 dither; /* dithering method during color reduction */
429 *attributes; /* deprecated */
434 MagickProgressMonitor
454 magick[MaxTextExtent],
455 unique[MaxTextExtent],
457 filename[MaxTextExtent];
463 *tile; /* deprecated */
466 subimage, /* deprecated */
467 subrange; /* deprecated */
470 pen; /* deprecated */
476 virtual_pixel_method;
488 extern MagickExport ExceptionType
489 CatchImageException(Image *);
491 extern MagickExport FILE
492 *GetImageInfoFile(const ImageInfo *);
494 extern MagickExport Image
495 *AcquireImage(const ImageInfo *),
496 *AppendImages(const Image *,const MagickBooleanType,ExceptionInfo *),
497 *CloneImage(const Image *,const size_t,const size_t,const MagickBooleanType,
499 *CombineImages(const Image *,const ChannelType,ExceptionInfo *),
500 *DestroyImage(Image *),
501 *GetImageClipMask(const Image *,ExceptionInfo *),
502 *GetImageMask(const Image *,ExceptionInfo *),
503 *NewMagickImage(const ImageInfo *,const size_t,const size_t,
504 const MagickPixelPacket *),
505 *ReferenceImage(Image *),
506 *SeparateImages(const Image *,const ChannelType,ExceptionInfo *),
507 *SmushImages(const Image *,const MagickBooleanType,const ssize_t,
510 extern MagickExport ImageInfo
511 *AcquireImageInfo(void),
512 *CloneImageInfo(const ImageInfo *),
513 *DestroyImageInfo(ImageInfo *);
515 extern MagickExport MagickBooleanType
517 ClipImagePath(Image *,const char *,const MagickBooleanType),
518 GetImageAlphaChannel(const Image *),
519 IsTaintImage(const Image *),
520 IsMagickConflict(const char *),
521 IsHighDynamicRangeImage(const Image *,ExceptionInfo *),
522 IsImageObject(const Image *),
523 ListMagickInfo(FILE *,ExceptionInfo *),
524 ModifyImage(Image **,ExceptionInfo *),
525 ResetImagePage(Image *,const char *),
526 SeparateImageChannel(Image *,const ChannelType),
527 SetImageAlphaChannel(Image *,const AlphaChannelType),
528 SetImageBackgroundColor(Image *),
529 SetImageClipMask(Image *,const Image *),
530 SetImageColor(Image *,const MagickPixelPacket *),
531 SetImageExtent(Image *,const size_t,const size_t),
532 SetImageInfo(ImageInfo *,const unsigned int,ExceptionInfo *),
533 SetImageMask(Image *,const Image *),
534 SetImageOpacity(Image *,const Quantum),
535 SetImageChannels(Image *,const size_t),
536 SetImageStorageClass(Image *,const ClassType),
537 SetImageType(Image *,const ImageType),
540 SyncImageSettings(const ImageInfo *,Image *),
541 SyncImagesSettings(ImageInfo *,Image *);
543 extern MagickExport size_t
544 InterpretImageFilename(const ImageInfo *,Image *,const char *,int,char *);
546 extern MagickExport ssize_t
547 GetImageReferenceCount(Image *);
549 extern MagickExport size_t
550 GetImageChannels(Image *);
552 extern MagickExport VirtualPixelMethod
553 GetImageVirtualPixelMethod(const Image *),
554 SetImageVirtualPixelMethod(const Image *,const VirtualPixelMethod);
556 extern MagickExport void
557 AcquireNextImage(const ImageInfo *,Image *),
558 DestroyImagePixels(Image *),
559 DisassociateImageStream(Image *),
560 GetImageException(Image *,ExceptionInfo *),
561 GetImageInfo(ImageInfo *),
562 SetImageInfoBlob(ImageInfo *,const void *,const size_t),
563 SetImageInfoFile(ImageInfo *,FILE *);
565 #if defined(__cplusplus) || defined(c_plusplus)