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 ((Quantum) QuantumRange)
00029
00030 typedef enum
00031 {
00032 UndefinedAlphaChannel,
00033 ActivateAlphaChannel,
00034 BackgroundAlphaChannel,
00035 CopyAlphaChannel,
00036 DeactivateAlphaChannel,
00037 ExtractAlphaChannel,
00038 OpaqueAlphaChannel,
00039 ResetAlphaChannel,
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;
00211
00212 double
00213 bias,
00214 blur,
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;
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;
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;
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;
00454
00455 unsigned long
00456 subimage,
00457 subrange;
00458
00459 PixelPacket
00460 pen;
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