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 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;
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;
00457
00458 unsigned long
00459 subimage,
00460 subrange;
00461
00462 PixelPacket
00463 pen;
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