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