# image.h

Go to the documentation of this file.

    00001 /*
    00002   Copyright 1999-2008 ImageMagick Studio LLC, a non-profit organization
    00003   dedicated to making software imaging solutions freely available.
    00004
    00005   You may not use this file except in compliance with the License.
    00006   obtain a copy of the License at
    00007
    00008     http://www.imagemagick.org/script/license.php
    00009
    00010   Unless required by applicable law or agreed to in writing, software
    00011   distributed under the License is distributed on an "AS IS" BASIS,
    00012   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    00013   See the License for the specific language governing permissions and
    00014   limitations under the License.
    00015
    00016   MagickCore image methods.
    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;  /* deprecated */
    00205
    00206   double
    00207     bias,
    00208     blur,  /* deprecated */
    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;  /* deprecated */
    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;  /* this & ProfileInfo is deprecated */
    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;  /* deprecated */
    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;  /* deprecated */
    00442
    00443   unsigned long
    00444     subimage,  /* deprecated */
    00445     subrange;  /* deprecated */
    00446
    00447   PixelPacket
    00448     pen;  /* deprecated */
    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