root / ImageMagick / trunk / magick / image.h

Revision 11473, 10.1 kB (checked in by cristy, 2 months ago)
Line 
1/*
2  Copyright 1999-2008 ImageMagick Studio LLC, a non-profit organization
3  dedicated to making software imaging solutions freely available.
4 
5  You may not use this file except in compliance with the License.
6  obtain a copy of the License at
7 
8    http://www.imagemagick.org/script/license.php
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15
16  MagickCore image methods.
17*/
18#ifndef _MAGICKCORE_IMAGE_H
19#define _MAGICKCORE_IMAGE_H
20
21#if defined(__cplusplus) || defined(c_plusplus)
22extern "C" {
23#endif
24
25#include <magick/color.h>
26
27#define OpaqueOpacity  ((Quantum) 0UL)
28#define TransparentOpacity  ((Quantum) QuantumRange)
29
30typedef enum
31{
32  UndefinedAlphaChannel,
33  ActivateAlphaChannel,
34  DeactivateAlphaChannel,
35  ResetAlphaChannel,
36  SetAlphaChannel
37} AlphaChannelType;
38
39typedef enum
40{
41  UndefinedType,
42  BilevelType,
43  GrayscaleType,
44  GrayscaleMatteType,
45  PaletteType,
46  PaletteMatteType,
47  TrueColorType,
48  TrueColorMatteType,
49  ColorSeparationType,
50  ColorSeparationMatteType,
51  OptimizeType,
52  PaletteBilevelMatteType
53} ImageType;
54
55typedef enum
56{
57  UndefinedInterlace,
58  NoInterlace,
59  LineInterlace,
60  PlaneInterlace,
61  PartitionInterlace,
62  GIFInterlace,
63  JPEGInterlace,
64  PNGInterlace
65} InterlaceType;
66
67typedef enum
68{
69  UndefinedOrientation,
70  TopLeftOrientation,
71  TopRightOrientation,
72  BottomRightOrientation,
73  BottomLeftOrientation,
74  LeftTopOrientation,
75  RightTopOrientation,
76  RightBottomOrientation,
77  LeftBottomOrientation
78} OrientationType;
79
80typedef enum
81{
82  UndefinedResolution,
83  PixelsPerInchResolution,
84  PixelsPerCentimeterResolution
85} ResolutionType;
86
87typedef struct _PrimaryInfo
88{
89  double
90    x,
91    y,
92    z;
93} PrimaryInfo;
94
95typedef struct _SegmentInfo
96{
97  double
98    x1,
99    y1,
100    x2,
101    y2;
102} SegmentInfo;
103
104typedef enum
105{
106  UndefinedTransmitType,
107  FileTransmitType,
108  BlobTransmitType,
109  StreamTransmitType,
110  ImageTransmitType
111} TransmitType;
112
113typedef struct _ChromaticityInfo
114{
115  PrimaryInfo
116    red_primary,
117    green_primary,
118    blue_primary,
119    white_point;
120} ChromaticityInfo;
121
122#include "magick/blob.h"
123#include "magick/colorspace.h"
124#include "magick/cache-view.h"
125#include "magick/color.h"
126#include "magick/composite.h"
127#include "magick/compress.h"
128#include "magick/effect.h"
129#include "magick/geometry.h"
130#include "magick/layer.h"
131#include "magick/monitor.h"
132#include "magick/pixel.h"
133#include "magick/profile.h"
134#include "magick/quantum.h"
135#include "magick/resample.h"
136#include "magick/resize.h"
137#include "magick/semaphore.h"
138#include "magick/stream.h"
139#include "magick/timer.h"
140
141struct _Image
142{
143  ClassType
144    storage_class;
145
146  ColorspaceType
147    colorspace;
148
149  CompressionType
150    compression;
151
152  unsigned long
153    quality;
154
155  OrientationType
156    orientation;
157
158  MagickBooleanType
159    taint,
160    matte;
161
162  unsigned long
163    columns,
164    rows,
165    depth,
166    colors;
167
168  PixelPacket
169    *colormap,
170    background_color,
171    border_color,
172    matte_color;
173
174  double
175    gamma;
176
177  ChromaticityInfo
178    chromaticity;
179
180  RenderingIntent
181    rendering_intent;
182
183  void
184    *profiles;
185
186  ResolutionType
187    units;
188
189  char
190    *montage,
191    *directory,
192    *geometry;
193
194  long
195    offset;
196
197  double
198    x_resolution,
199    y_resolution;
200
201  RectangleInfo
202    page,
203    extract_info,
204    tile_info;  /* deprecated */
205
206  double
207    bias,
208    blur,  /* deprecated */
209    fuzz;
210
211  FilterTypes
212    filter;
213
214  InterlaceType
215    interlace;
216
217  EndianType
218    endian;
219
220  GravityType
221    gravity;
222
223  CompositeOperator
224    compose;
225
226  DisposeType
227    dispose;
228
229  struct _Image
230    *clip_mask;
231
232  unsigned long
233    scene,
234    delay;
235
236  long
237    ticks_per_second;
238
239  unsigned long
240    iterations,
241    total_colors;
242
243  long
244    start_loop;
245
246  ErrorInfo
247    error;
248
249  TimerInfo
250    timer;
251
252  MagickProgressMonitor
253    progress_monitor;
254
255  void
256    *client_data,
257    *cache,
258    *attributes;  /* deprecated */
259
260  Ascii85Info
261    *ascii85;
262
263  BlobInfo
264    *blob;
265
266  char
267    filename[MaxTextExtent],
268    magick_filename[MaxTextExtent],
269    magick[MaxTextExtent];
270
271  unsigned long
272    magick_columns,
273    magick_rows;
274
275  ExceptionInfo
276    exception;
277
278  MagickBooleanType
279    debug;
280
281  long
282    reference_count;
283
284  SemaphoreInfo
285    *semaphore;
286
287  ProfileInfo
288    color_profile,
289    iptc_profile,
290    *generic_profile;
291
292  unsigned long
293    generic_profiles;  /* this & ProfileInfo is deprecated */
294
295  unsigned long
296    signature;
297
298  struct _Image
299    *previous,
300    *list,
301    *next;
302
303  InterpolatePixelMethod
304    interpolate;
305
306  MagickBooleanType
307    black_point_compensation;
308
309  PixelPacket
310    transparent_color;
311
312  struct _Image
313    *mask;
314
315  RectangleInfo
316    tile_offset;
317
318  void
319    *properties,
320    *artifacts;
321
322  ImageType
323    type;
324
325  MagickBooleanType
326    dither;
327};
328
329struct _ImageInfo
330{
331  CompressionType
332    compression;
333
334  OrientationType
335    orientation;
336
337  MagickBooleanType
338    temporary,
339    adjoin,
340    affirm,
341    antialias;
342
343  char
344    *size,
345    *extract,
346    *page,
347    *scenes;
348
349  unsigned long
350    scene,
351    number_scenes,
352    depth;
353
354  InterlaceType
355    interlace;
356
357  EndianType
358    endian;
359
360  ResolutionType
361    units;
362
363  unsigned long
364    quality;
365
366  char
367    *sampling_factor,
368    *server_name,
369    *font,
370    *texture,
371    *density;
372
373  double
374    pointsize,
375    fuzz;
376
377  PixelPacket
378    background_color,
379    border_color,
380    matte_color;
381
382  MagickBooleanType
383    dither,
384    monochrome;
385
386  unsigned long
387    colors;
388
389  ColorspaceType
390    colorspace;
391
392  ImageType
393    type;
394
395  PreviewType
396    preview_type;
397
398  long
399    group;
400
401  MagickBooleanType
402    ping,
403    verbose;
404
405  char
406    *view,
407    *authenticate;
408
409  ChannelType
410    channel;
411
412  Image
413    *attributes;  /* deprecated */
414
415  void
416    *options;
417
418  MagickProgressMonitor
419    progress_monitor;
420
421  void
422    *client_data,
423    *cache;
424
425  StreamHandler
426    stream;
427
428  FILE
429    *file;
430
431  void
432    *blob;
433
434  size_t
435    length;
436
437  char
438    magick[MaxTextExtent],
439    unique[MaxTextExtent],
440    zero[MaxTextExtent],
441    filename[MaxTextExtent];
442
443  MagickBooleanType
444    debug;
445
446  char
447    *tile;  /* deprecated */
448
449  unsigned long
450    subimage,  /* deprecated */
451    subrange;  /* deprecated */
452
453  PixelPacket
454    pen;  /* deprecated */
455
456  unsigned long
457    signature;
458
459  VirtualPixelMethod
460    virtual_pixel_method;
461
462  PixelPacket
463    transparent_color;
464
465  void
466    *profile;
467};
468
469extern MagickExport const IndexPacket
470  *AcquireIndexes(const Image *);
471
472extern MagickExport const PixelPacket
473  *AcquireImagePixels(const Image *,const long,const long,const unsigned long,
474    const unsigned long,ExceptionInfo *);
475
476extern MagickExport ExceptionType
477  CatchImageException(Image *);
478
479extern MagickExport Image
480  *AcquireImage(const ImageInfo *),
481  *AppendImages(const Image *,const MagickBooleanType,ExceptionInfo *),
482  *AverageImages(const Image *,ExceptionInfo *),
483  *CloneImage(const Image *,const unsigned long,const unsigned long,
484    const MagickBooleanType,ExceptionInfo *),
485  *CombineImages(const Image *,const ChannelType,ExceptionInfo *),
486  *DestroyImage(Image *),
487  *GetImageClipMask(const Image *,ExceptionInfo *),
488  *GetImageMask(const Image *,ExceptionInfo *),
489  *NewMagickImage(const ImageInfo *,const unsigned long,const unsigned long,
490    const MagickPixelPacket *),
491  *ReferenceImage(Image *),
492  *SeparateImages(const Image *,const ChannelType,ExceptionInfo *);
493
494extern MagickExport ImageInfo
495  *AcquireImageInfo(void),
496  *CloneImageInfo(const ImageInfo *),
497  *DestroyImageInfo(ImageInfo *);
498
499extern MagickExport ImageType
500  GetImageType(const Image *,ExceptionInfo *);
501
502extern MagickExport IndexPacket
503  *GetIndexes(const Image *);
504
505extern MagickExport long
506  InterpretImageFilename(char *,const size_t,const char *,int);
507
508extern MagickExport MagickBooleanType
509  AcquireImageColormap(Image *,const unsigned long),
510  ClipImage(Image *),
511  ClipImagePath(Image *,const char *,const MagickBooleanType),
512  CycleColormapImage(Image *,const long),
513  GetImageAlphaChannel(const Image *),
514  GradientImage(Image *,const PixelPacket *,const PixelPacket *),
515  IsTaintImage(const Image *),
516  IsMagickConflict(const char *),
517  IsHighDynamicRangeImage(const Image *,ExceptionInfo *),
518  IsImageObject(const Image *),
519  ListMagickInfo(FILE *,ExceptionInfo *),
520  ModifyImage(Image **,ExceptionInfo *),
521  PlasmaImage(Image *,const SegmentInfo *,unsigned long,unsigned long),
522  ResetImagePage(Image *,const char *),
523  SeparateImageChannel(Image *,const ChannelType),
524  SetImageAlphaChannel(Image *,const AlphaChannelType),
525  SetImageBackgroundColor(Image *),
526  SetImageClipMask(Image *,const Image *),
527  SetImageExtent(Image *,const unsigned long,const unsigned long),
528  SetImageInfo(ImageInfo *,const MagickBooleanType,ExceptionInfo *),
529  SetImageMask(Image *,const Image *),
530  SetImageOpacity(Image *,const Quantum),
531  SetImageStorageClass(Image *,const ClassType),
532  SetImageType(Image *,const ImageType),
533  SortColormapByIntensity(Image *),
534  StripImage(Image *),
535  SyncImage(Image *),
536  SyncImagePixels(Image *),
537  TextureImage(Image *,const Image *);
538
539extern MagickExport MagickPixelPacket
540  AcquireOneMagickPixel(const Image *,const long,const long,ExceptionInfo *);
541
542extern MagickExport PixelPacket
543  AcquireOnePixel(const Image *,const long,const long,ExceptionInfo *),
544  AcquireOneVirtualPixel(const Image *,const VirtualPixelMethod,const long,
545    const long,ExceptionInfo *),
546  *GetImagePixels(Image *,const long,const long,const unsigned long,
547    const unsigned long),
548  GetOnePixel(Image *,const long,const long),
549  *GetPixels(const Image *),
550  *SetImagePixels(Image *,const long,const long,const unsigned long,
551    const unsigned long);
552
553extern MagickExport VirtualPixelMethod
554  GetImageVirtualPixelMethod(const Image *),
555  SetImageVirtualPixelMethod(const Image *,const VirtualPixelMethod);
556
557extern MagickExport void
558  AcquireNextImage(const ImageInfo *,Image *),
559  DestroyImagePixels(Image *),
560  DisassociateImageStream(Image *),
561  GetImageException(Image *,ExceptionInfo *),
562  GetImageInfo(ImageInfo *),
563  SetImageInfoBlob(ImageInfo *,const void *,const size_t),
564  SetImageInfoFile(ImageInfo *,FILE *);
565
566#if defined(__cplusplus) || defined(c_plusplus)
567}
568#endif
569
570#endif
Note: See TracBrowser for help on using the browser.