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 
00335 struct _ImageInfo
00336 {
00337   CompressionType
00338     compression;
00339 
00340   OrientationType
00341     orientation;
00342 
00343   MagickBooleanType
00344     temporary,
00345     adjoin,
00346     affirm,
00347     antialias;
00348 
00349   char
00350     *size,
00351     *extract,
00352     *page,
00353     *scenes;
00354 
00355   unsigned long
00356     scene,
00357     number_scenes,
00358     depth;
00359 
00360   InterlaceType
00361     interlace;
00362 
00363   EndianType
00364     endian;
00365 
00366   ResolutionType
00367     units;
00368 
00369   unsigned long
00370     quality;
00371 
00372   char
00373     *sampling_factor,
00374     *server_name,
00375     *font,
00376     *texture,
00377     *density;
00378 
00379   double
00380     pointsize,
00381     fuzz;
00382 
00383   PixelPacket
00384     background_color,
00385     border_color,
00386     matte_color;
00387 
00388   MagickBooleanType
00389     dither,
00390     monochrome;
00391 
00392   unsigned long
00393     colors;
00394 
00395   ColorspaceType
00396     colorspace;
00397 
00398   ImageType
00399     type;
00400 
00401   PreviewType
00402     preview_type;
00403 
00404   long
00405     group;
00406 
00407   MagickBooleanType
00408     ping,
00409     verbose;
00410 
00411   char
00412     *view,
00413     *authenticate;
00414 
00415   ChannelType
00416     channel;
00417 
00418   Image
00419     *attributes;  /* deprecated */
00420 
00421   void
00422     *options;
00423 
00424   MagickProgressMonitor
00425     progress_monitor;
00426 
00427   void
00428     *client_data,
00429     *cache;
00430 
00431   StreamHandler
00432     stream;
00433 
00434   FILE
00435     *file;
00436 
00437   void
00438     *blob;
00439 
00440   size_t
00441     length;
00442 
00443   char
00444     magick[MaxTextExtent],
00445     unique[MaxTextExtent],
00446     zero[MaxTextExtent],
00447     filename[MaxTextExtent];
00448 
00449   MagickBooleanType
00450     debug;
00451 
00452   char
00453     *tile;  /* deprecated */
00454 
00455   unsigned long
00456     subimage,  /* deprecated */
00457     subrange;  /* deprecated */
00458 
00459   PixelPacket
00460     pen;  /* deprecated */
00461 
00462   unsigned long
00463     signature;
00464 
00465   VirtualPixelMethod
00466     virtual_pixel_method;
00467 
00468   PixelPacket
00469     transparent_color;
00470 
00471   void
00472     *profile;
00473 
00474   MagickBooleanType
00475     synchronize;
00476 };
00477 
00478 extern MagickExport ExceptionType
00479   CatchImageException(Image *);
00480 
00481 extern MagickExport Image
00482   *AcquireImage(const ImageInfo *),
00483   *AppendImages(const Image *,const MagickBooleanType,ExceptionInfo *),
00484   *AverageImages(const Image *,ExceptionInfo *),
00485   *CloneImage(const Image *,const unsigned long,const unsigned long,
00486     const MagickBooleanType,ExceptionInfo *),
00487   *CombineImages(const Image *,const ChannelType,ExceptionInfo *),
00488   *DestroyImage(Image *),
00489   *GetImageClipMask(const Image *,ExceptionInfo *),
00490   *GetImageMask(const Image *,ExceptionInfo *),
00491   *NewMagickImage(const ImageInfo *,const unsigned long,const unsigned long,
00492     const MagickPixelPacket *),
00493   *ReferenceImage(Image *),
00494   *SeparateImages(const Image *,const ChannelType,ExceptionInfo *);
00495 
00496 extern MagickExport ImageInfo
00497   *AcquireImageInfo(void),
00498   *CloneImageInfo(const ImageInfo *),
00499   *DestroyImageInfo(ImageInfo *);
00500 
00501 extern MagickExport ImageType
00502   GetImageType(const Image *,ExceptionInfo *);
00503 
00504 extern MagickExport MagickBooleanType
00505   AcquireImageColormap(Image *,const unsigned long),
00506   ClipImage(Image *),
00507   ClipImagePath(Image *,const char *,const MagickBooleanType),
00508   CycleColormapImage(Image *,const long),
00509   GetImageAlphaChannel(const Image *),
00510   IsTaintImage(const Image *),
00511   IsMagickConflict(const char *),
00512   IsHighDynamicRangeImage(const Image *,ExceptionInfo *),
00513   IsImageObject(const Image *),
00514   ListMagickInfo(FILE *,ExceptionInfo *),
00515   ModifyImage(Image **,ExceptionInfo *),
00516   ResetImagePage(Image *,const char *),
00517   SeparateImageChannel(Image *,const ChannelType),
00518   SetImageAlphaChannel(Image *,const AlphaChannelType),
00519   SetImageBackgroundColor(Image *),
00520   SetImageClipMask(Image *,const Image *),
00521   SetImageExtent(Image *,const unsigned long,const unsigned long),
00522   SetImageInfo(ImageInfo *,const MagickBooleanType,ExceptionInfo *),
00523   SetImageMask(Image *,const Image *),
00524   SetImageOpacity(Image *,const Quantum),
00525   SetImageStorageClass(Image *,const ClassType),
00526   SetImageType(Image *,const ImageType),
00527   SortColormapByIntensity(Image *),
00528   StripImage(Image *),
00529   SyncImage(Image *),
00530   SyncImageSettings(const ImageInfo *,Image *),
00531   SyncImagesSettings(ImageInfo *,Image *),
00532   TextureImage(Image *,const Image *);
00533 
00534 extern MagickExport size_t
00535   InterpretImageFilename(const ImageInfo *,Image *,const char *,int,char *);
00536 
00537 extern MagickExport VirtualPixelMethod
00538   GetImageVirtualPixelMethod(const Image *),
00539   SetImageVirtualPixelMethod(const Image *,const VirtualPixelMethod);
00540 
00541 extern MagickExport void
00542   AcquireNextImage(const ImageInfo *,Image *),
00543   DestroyImagePixels(Image *),
00544   DisassociateImageStream(Image *),
00545   GetImageException(Image *,ExceptionInfo *),
00546   GetImageInfo(ImageInfo *),
00547   SetImageInfoBlob(ImageInfo *,const void *,const size_t),
00548   SetImageInfoFile(ImageInfo *,FILE *);
00549 
00550 #if defined(__cplusplus) || defined(c_plusplus)
00551 }
00552 #endif
00553 
00554 #endif

Generated on Thu Jul 2 12:03:20 2009 for MagickCore by  doxygen 1.5.8