image.h

Go to the documentation of this file.
00001 /*
00002   Copyright 1999-2010 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

Generated on Sat Jan 26 14:50:29 2008 for MagickCore by  doxygen 1.5.4