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