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 <MagickCore/color.h>
27 #define OpaqueAlpha ((Quantum) QuantumRange)
28 #define TransparentAlpha ((Quantum) 0UL)
32 UndefinedAlphaChannel,
34 BackgroundAlphaChannel,
36 DeactivateAlphaChannel,
41 TransparentAlphaChannel
55 ColorSeparationMatteType,
57 PaletteBilevelMatteType
77 BottomRightOrientation,
78 BottomLeftOrientation,
81 RightBottomOrientation,
88 PixelsPerInchResolution,
89 PixelsPerCentimeterResolution
92 typedef struct _PrimaryInfo
100 typedef struct _SegmentInfo
111 UndefinedTransmitType,
118 typedef struct _ChromaticityInfo
127 #include "MagickCore/blob.h"
128 #include "MagickCore/colorspace.h"
129 #include "MagickCore/cache-view.h"
130 #include "MagickCore/color.h"
131 #include "MagickCore/composite.h"
132 #include "MagickCore/compress.h"
133 #include "MagickCore/effect.h"
134 #include "MagickCore/geometry.h"
135 #include "MagickCore/layer.h"
136 #include "MagickCore/locale_.h"
137 #include "MagickCore/monitor.h"
138 #include "MagickCore/pixel.h"
139 #include "MagickCore/profile.h"
140 #include "MagickCore/quantum.h"
141 #include "MagickCore/resample.h"
142 #include "MagickCore/resize.h"
143 #include "MagickCore/semaphore.h"
144 #include "MagickCore/stream.h"
145 #include "MagickCore/timer.h"
153 colorspace; /* colorspace of image data */
156 compression; /* compression of image when read/write */
159 quality; /* compression quality setting, meaning varies */
162 orientation; /* photo orientation of image */
165 taint, /* has image been modified since reading */
166 matte; /* is transparency channel defined and active */
169 columns, /* physical size of image */
171 depth, /* depth of image on read/write */
172 colors; /* size of color table on read */
176 background_color, /* current background color attribute */
177 border_color, /* current bordercolor attribute */
178 matte_color; /* current mattecolor attribute */
193 units; /* resolution/density ppi or ppc */
204 x_resolution, /* image resolution/density */
208 page, /* virtual canvas size and offset of image */
214 fuzz; /* current color fuzz attribute */
217 filter; /* resize/distort filter to apply */
223 endian; /* raw data integer ordering on read/write */
226 gravity; /* Gravity attribute for positioning in image */
229 compose; /* alpha composition method for layered images */
232 dispose; /* GIF animation disposal method */
238 scene, /* index of image in multi-image file */
239 delay; /* Animation delay time */
242 ticks_per_second; /* units for delay time, default 100 for GIF */
251 InterpolatePixelMethod
252 interpolate; /* Interpolation of color for between pixel lookups */
255 black_point_compensation;
258 transparent_color; /* color for 'transparent' color index in GIF */
267 *properties, /* per image properities */
268 *artifacts; /* per image sequence image artifacts */
274 dither; /* dithering method during color reduction */
284 number_meta_channels,
305 MagickProgressMonitor
320 filename[MaxTextExtent], /* images input filename */
321 magick_filename[MaxTextExtent],
322 magick[MaxTextExtent];
332 exception; /* Error handling report */
335 debug; /* debug output attribute */
344 *previous, /* Image sequence list links */
439 virtual_pixel_method;
450 MagickProgressMonitor
470 magick[MaxTextExtent],
471 unique[MaxTextExtent],
473 filename[MaxTextExtent];
482 extern MagickExport const char
483 DefaultTileGeometry[],
492 extern MagickExport const double
495 extern MagickExport ExceptionType
496 CatchImageException(Image *);
498 extern MagickExport FILE
499 *GetImageInfoFile(const ImageInfo *);
501 extern MagickExport Image
502 *AcquireImage(const ImageInfo *),
503 *AppendImages(const Image *,const MagickBooleanType,ExceptionInfo *),
504 *CloneImage(const Image *,const size_t,const size_t,const MagickBooleanType,
506 *CombineImages(const Image *,ExceptionInfo *),
507 *DestroyImage(Image *),
508 *GetImageClipMask(const Image *,ExceptionInfo *),
509 *GetImageMask(const Image *,ExceptionInfo *),
510 *NewMagickImage(const ImageInfo *,const size_t,const size_t,
512 *ReferenceImage(Image *),
513 *SeparateImages(const Image *,ExceptionInfo *),
514 *SmushImages(const Image *,const MagickBooleanType,const ssize_t,
517 extern MagickExport ImageInfo
518 *AcquireImageInfo(void),
519 *CloneImageInfo(const ImageInfo *),
520 *DestroyImageInfo(ImageInfo *);
522 extern MagickExport MagickBooleanType
523 ClipImage(Image *,ExceptionInfo *),
524 ClipImagePath(Image *,const char *,const MagickBooleanType,ExceptionInfo *),
525 GetImageAlphaChannel(const Image *),
526 IsTaintImage(const Image *),
527 IsHighDynamicRangeImage(const Image *,ExceptionInfo *),
528 IsImageObject(const Image *),
529 ListMagickInfo(FILE *,ExceptionInfo *),
530 ModifyImage(Image **,ExceptionInfo *),
531 ResetImagePage(Image *,const char *),
532 SeparateImage(Image *),
533 SetImageAlphaChannel(Image *,const AlphaChannelType,ExceptionInfo *),
534 SetImageBackgroundColor(Image *),
535 SetImageClipMask(Image *,const Image *,ExceptionInfo *),
536 SetImageColor(Image *,const PixelInfo *),
537 SetImageExtent(Image *,const size_t,const size_t,ExceptionInfo *),
538 SetImageInfo(ImageInfo *,const unsigned int,ExceptionInfo *),
539 SetImageMask(Image *,const Image *,ExceptionInfo *),
540 SetImageOpacity(Image *,const Quantum),
541 SetImageStorageClass(Image *,const ClassType,ExceptionInfo *),
542 SetImageType(Image *,const ImageType,ExceptionInfo *),
545 SyncImageSettings(const ImageInfo *,Image *),
546 SyncImagesSettings(ImageInfo *,Image *);
548 extern MagickExport size_t
549 InterpretImageFilename(const ImageInfo *,Image *,const char *,int,char *);
551 extern MagickExport ssize_t
552 GetImageReferenceCount(Image *);
554 extern MagickExport VirtualPixelMethod
555 GetImageVirtualPixelMethod(const Image *),
556 SetImageVirtualPixelMethod(const Image *,const VirtualPixelMethod);
558 extern MagickExport void
559 AcquireNextImage(const ImageInfo *,Image *),
560 DestroyImagePixels(Image *),
561 DisassociateImageStream(Image *),
562 GetImageException(Image *,ExceptionInfo *),
563 GetImageInfo(ImageInfo *),
564 SetImageInfoBlob(ImageInfo *,const void *,const size_t),
565 SetImageInfoFile(ImageInfo *,FILE *);
567 #if defined(__cplusplus) || defined(c_plusplus)