00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 #ifndef _MAGICKCORE_IMAGE_H
00019 #define _MAGICKCORE_IMAGE_H
00020 
00021 #if defined(__cplusplus) || defined(c_plusplus)
00022 extern "C" {
00023 #endif
00024 
00025 #include <magick/color.h>
00026 
00027 #define OpaqueOpacity  ((Quantum) 0UL)
00028 #define TransparentOpacity  (QuantumRange)
00029 
00030 typedef enum
00031 {
00032   UndefinedAlphaChannel,
00033   ActivateAlphaChannel,
00034   DeactivateAlphaChannel,
00035   ResetAlphaChannel,
00036   SetAlphaChannel
00037 } AlphaChannelType;
00038 
00039 typedef enum
00040 {
00041   UndefinedType,
00042   BilevelType,
00043   GrayscaleType,
00044   GrayscaleMatteType,
00045   PaletteType,
00046   PaletteMatteType,
00047   TrueColorType,
00048   TrueColorMatteType,
00049   ColorSeparationType,
00050   ColorSeparationMatteType,
00051   OptimizeType,
00052   PaletteBilevelMatteType
00053 } ImageType;
00054 
00055 typedef enum
00056 {
00057   UndefinedInterlace,
00058   NoInterlace,
00059   LineInterlace,
00060   PlaneInterlace,
00061   PartitionInterlace,
00062   GIFInterlace,
00063   JPEGInterlace,
00064   PNGInterlace
00065 } InterlaceType;
00066 
00067 typedef enum
00068 {
00069   UndefinedOrientation,
00070   TopLeftOrientation,
00071   TopRightOrientation,
00072   BottomRightOrientation,
00073   BottomLeftOrientation,
00074   LeftTopOrientation,
00075   RightTopOrientation,
00076   RightBottomOrientation,
00077   LeftBottomOrientation
00078 } OrientationType;
00079 
00080 typedef enum
00081 {
00082   UndefinedResolution,
00083   PixelsPerInchResolution,
00084   PixelsPerCentimeterResolution
00085 } ResolutionType;
00086 
00087 typedef struct _PrimaryInfo
00088 {
00089   double
00090     x,
00091     y,
00092     z;
00093 } PrimaryInfo;
00094 
00095 typedef struct _SegmentInfo
00096 {
00097   double
00098     x1,
00099     y1,
00100     x2,
00101     y2;
00102 } SegmentInfo;
00103 
00104 typedef enum
00105 {
00106   UndefinedTransmitType,
00107   FileTransmitType,
00108   BlobTransmitType,
00109   StreamTransmitType,
00110   ImageTransmitType
00111 } TransmitType;
00112 
00113 typedef struct _ChromaticityInfo
00114 {
00115   PrimaryInfo
00116     red_primary,
00117     green_primary,
00118     blue_primary,
00119     white_point;
00120 } ChromaticityInfo;
00121 
00122 #include "magick/blob.h"
00123 #include "magick/colorspace.h"
00124 #include "magick/cache-view.h"
00125 #include "magick/color.h"
00126 #include "magick/composite.h"
00127 #include "magick/compress.h"
00128 #include "magick/effect.h"
00129 #include "magick/geometry.h"
00130 #include "magick/layer.h"
00131 #include "magick/monitor.h"
00132 #include "magick/pixel.h"
00133 #include "magick/profile.h"
00134 #include "magick/quantum.h"
00135 #include "magick/resample.h"
00136 #include "magick/resize.h"
00137 #include "magick/semaphore.h"
00138 #include "magick/stream.h"
00139 #include "magick/timer.h"
00140 
00141 struct _Image
00142 {
00143   ClassType
00144     storage_class;
00145 
00146   ColorspaceType
00147     colorspace;
00148 
00149   CompressionType
00150     compression;
00151 
00152   unsigned long
00153     quality;
00154 
00155   OrientationType
00156     orientation;
00157 
00158   MagickBooleanType
00159     taint,
00160     matte;
00161 
00162   unsigned long
00163     columns,
00164     rows,
00165     depth,
00166     colors;
00167 
00168   PixelPacket
00169     *colormap,
00170     background_color,
00171     border_color,
00172     matte_color;
00173 
00174   double
00175     gamma;
00176 
00177   ChromaticityInfo
00178     chromaticity;
00179 
00180   RenderingIntent
00181     rendering_intent;
00182 
00183   void
00184     *profiles;
00185 
00186   ResolutionType
00187     units;
00188 
00189   char
00190     *montage,
00191     *directory,
00192     *geometry;
00193 
00194   long
00195     offset;
00196 
00197   double
00198     x_resolution,
00199     y_resolution;
00200 
00201   RectangleInfo
00202     page,
00203     extract_info,
00204     tile_info;  
00205 
00206   double
00207     bias,
00208     blur,  
00209     fuzz;
00210 
00211   FilterTypes
00212     filter;
00213 
00214   InterlaceType
00215     interlace;
00216 
00217   EndianType
00218     endian;
00219 
00220   GravityType
00221     gravity;
00222 
00223   CompositeOperator
00224     compose;
00225 
00226   DisposeType
00227     dispose;
00228 
00229   struct _Image
00230     *clip_mask;
00231 
00232   unsigned long
00233     scene,
00234     delay;
00235 
00236   long
00237     ticks_per_second;
00238 
00239   unsigned long
00240     iterations,
00241     total_colors;
00242 
00243   long
00244     start_loop;
00245 
00246   ErrorInfo
00247     error;
00248 
00249   TimerInfo
00250     timer;
00251 
00252   MagickProgressMonitor
00253     progress_monitor;
00254 
00255   void
00256     *client_data,
00257     *cache,
00258     *attributes;  
00259 
00260   Ascii85Info
00261     *ascii85;
00262 
00263   BlobInfo
00264     *blob;
00265 
00266   char
00267     filename[MaxTextExtent],
00268     magick_filename[MaxTextExtent],
00269     magick[MaxTextExtent];
00270 
00271   unsigned long
00272     magick_columns,
00273     magick_rows;
00274 
00275   ExceptionInfo
00276     exception;
00277 
00278   MagickBooleanType
00279     debug;
00280 
00281   long
00282     reference_count;
00283 
00284   SemaphoreInfo
00285     *semaphore;
00286 
00287   ProfileInfo
00288     color_profile,
00289     iptc_profile,
00290     *generic_profile;
00291 
00292   unsigned long
00293     generic_profiles;  
00294 
00295   unsigned long
00296     signature;
00297 
00298   struct _Image
00299     *previous,
00300     *list,
00301     *next;
00302 
00303   InterpolatePixelMethod
00304     interpolate;
00305 
00306   MagickBooleanType
00307     black_point_compensation;
00308 
00309   PixelPacket
00310     transparent_color;
00311 
00312   struct _Image
00313     *mask;
00314 
00315   RectangleInfo
00316     tile_offset;
00317 
00318   void
00319     *properties,
00320     *artifacts;
00321 };
00322 
00323 struct _ImageInfo
00324 {
00325   CompressionType
00326     compression;
00327 
00328   OrientationType
00329     orientation;
00330 
00331   MagickBooleanType
00332     temporary,
00333     adjoin,
00334     affirm,
00335     antialias;
00336 
00337   char
00338     *size,
00339     *extract,
00340     *page,
00341     *scenes;
00342 
00343   unsigned long
00344     scene,
00345     number_scenes,
00346     depth;
00347 
00348   InterlaceType
00349     interlace;
00350 
00351   EndianType
00352     endian;
00353 
00354   ResolutionType
00355     units;
00356 
00357   unsigned long
00358     quality;
00359 
00360   char
00361     *sampling_factor,
00362     *server_name,
00363     *font,
00364     *texture,
00365     *density;
00366 
00367   double
00368     pointsize,
00369     fuzz;
00370 
00371   PixelPacket
00372     background_color,
00373     border_color,
00374     matte_color;
00375 
00376   MagickBooleanType
00377     dither,
00378     monochrome;
00379 
00380   unsigned long
00381     colors;
00382 
00383   ColorspaceType
00384     colorspace;
00385 
00386   ImageType
00387     type;
00388 
00389   PreviewType
00390     preview_type;
00391 
00392   long
00393     group;
00394 
00395   MagickBooleanType
00396     ping,
00397     verbose;
00398 
00399   char
00400     *view,
00401     *authenticate;
00402 
00403   ChannelType
00404     channel;
00405 
00406   Image
00407     *attributes;  
00408 
00409   void
00410     *options;
00411 
00412   MagickProgressMonitor
00413     progress_monitor;
00414 
00415   void
00416     *client_data,
00417     *cache;
00418 
00419   StreamHandler
00420     stream;
00421 
00422   FILE
00423     *file;
00424 
00425   void
00426     *blob;
00427 
00428   size_t
00429     length;
00430 
00431   char
00432     magick[MaxTextExtent],
00433     unique[MaxTextExtent],
00434     zero[MaxTextExtent],
00435     filename[MaxTextExtent];
00436 
00437   MagickBooleanType
00438     debug;
00439 
00440   char
00441     *tile;  
00442 
00443   unsigned long
00444     subimage,  
00445     subrange;  
00446 
00447   PixelPacket
00448     pen;  
00449 
00450   unsigned long
00451     signature;
00452 
00453   VirtualPixelMethod
00454     virtual_pixel_method;
00455 
00456   PixelPacket
00457     transparent_color;
00458 
00459   void
00460     *profile;
00461 };
00462 
00463 extern MagickExport const IndexPacket
00464   *AcquireIndexes(const Image *);
00465 
00466 extern MagickExport const PixelPacket
00467   *AcquireImagePixels(const Image *,const long,const long,const unsigned long,
00468     const unsigned long,ExceptionInfo *);
00469 
00470 extern MagickExport ExceptionType
00471   CatchImageException(Image *);
00472 
00473 extern MagickExport Image
00474   *AllocateImage(const ImageInfo *),
00475   *AppendImages(const Image *,const MagickBooleanType,ExceptionInfo *),
00476   *AverageImages(const Image *,ExceptionInfo *),
00477   *CloneImage(const Image *,const unsigned long,const unsigned long,
00478     const MagickBooleanType,ExceptionInfo *),
00479   *CombineImages(const Image *,const ChannelType,ExceptionInfo *),
00480   *DestroyImage(Image *),
00481   *GetImageClipMask(const Image *,ExceptionInfo *),
00482   *GetImageMask(const Image *,ExceptionInfo *),
00483   *NewMagickImage(const ImageInfo *,const unsigned long,const unsigned long,
00484     const MagickPixelPacket *),
00485   *ReferenceImage(Image *),
00486   *SeparateImages(const Image *,const ChannelType,ExceptionInfo *);
00487 
00488 extern MagickExport ImageInfo
00489   *AcquireImageInfo(void),
00490   *CloneImageInfo(const ImageInfo *),
00491   *DestroyImageInfo(ImageInfo *);
00492 
00493 extern MagickExport ImageType
00494   GetImageType(const Image *,ExceptionInfo *);
00495 
00496 extern MagickExport IndexPacket
00497   *GetIndexes(const Image *);
00498 
00499 extern MagickExport long
00500   InterpretImageFilename(char *,const size_t,const char *,int);
00501 
00502 extern MagickExport MagickBooleanType
00503   AllocateImageColormap(Image *,const unsigned long),
00504   ClipImage(Image *),
00505   ClipImagePath(Image *,const char *,const MagickBooleanType),
00506   CycleColormapImage(Image *,const long),
00507   GradientImage(Image *,const PixelPacket *,const PixelPacket *),
00508   IsTaintImage(const Image *),
00509   IsMagickConflict(const char *),
00510   IsHighDynamicRangeImage(const Image *,ExceptionInfo *),
00511   IsImageObject(const Image *),
00512   ListMagickInfo(FILE *,ExceptionInfo *),
00513   ModifyImage(Image **,ExceptionInfo *),
00514   PlasmaImage(Image *,const SegmentInfo *,unsigned long,unsigned long),
00515   ResetImagePage(Image *,const char *),
00516   SeparateImageChannel(Image *,const ChannelType),
00517   SetImageAlphaChannel(Image *,const AlphaChannelType),
00518   SetImageBackgroundColor(Image *),
00519   SetImageClipMask(Image *,const Image *),
00520   SetImageExtent(Image *,const unsigned long,const unsigned long),
00521   SetImageInfo(ImageInfo *,const MagickBooleanType,ExceptionInfo *),
00522   SetImageMask(Image *,const Image *),
00523   SetImageOpacity(Image *,const Quantum),
00524   SetImageStorageClass(Image *,const ClassType),
00525   SetImageType(Image *,const ImageType),
00526   SortColormapByIntensity(Image *),
00527   StripImage(Image *),
00528   SyncImage(Image *),
00529   SyncImagePixels(Image *),
00530   TextureImage(Image *,const Image *);
00531 
00532 extern MagickExport MagickPixelPacket
00533   AcquireOneMagickPixel(const Image *,const long,const long,ExceptionInfo *);
00534 
00535 extern MagickExport PixelPacket
00536   AcquireOnePixel(const Image *,const long,const long,ExceptionInfo *),
00537   AcquireOneVirtualPixel(const Image *,const VirtualPixelMethod,const long,
00538     const long,ExceptionInfo *),
00539   *GetImagePixels(Image *,const long,const long,const unsigned long,
00540     const unsigned long),
00541   GetOnePixel(Image *,const long,const long),
00542   *GetPixels(const Image *),
00543   *SetImagePixels(Image *,const long,const long,const unsigned long,
00544     const unsigned long);
00545 
00546 extern MagickExport VirtualPixelMethod
00547   GetImageVirtualPixelMethod(const Image *),
00548   SetImageVirtualPixelMethod(const Image *,const VirtualPixelMethod);
00549 
00550 extern MagickExport void
00551   AllocateNextImage(const ImageInfo *,Image *),
00552   DestroyImagePixels(Image *),
00553   DisassociateImageStream(Image *),
00554   GetImageException(Image *,ExceptionInfo *),
00555   GetImageInfo(ImageInfo *),
00556   SetImageInfoBlob(ImageInfo *,const void *,const size_t),
00557   SetImageInfoFile(ImageInfo *,FILE *);
00558 
00559 #if defined(__cplusplus) || defined(c_plusplus)
00560 }
00561 #endif
00562 
00563 #endif