MagickCore  6.8.9
image.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2014 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 #include "magick/color.h"
22 
23 #if defined(__cplusplus) || defined(c_plusplus)
24 extern "C" {
25 #endif
26 
27 #define OpaqueOpacity ((Quantum) 0UL)
28 #define TransparentOpacity (QuantumRange)
29 
30 typedef enum
31 {
39  ResetAlphaChannel, /* deprecated */
48 
49 typedef enum
50 {
63 } ImageType;
64 
65 typedef enum
66 {
76 
77 typedef enum
78 {
89 
90 typedef enum
91 {
96 
97 typedef struct _PrimaryInfo
98 {
99  double
100  x,
101  y,
102  z;
103 } PrimaryInfo;
104 
105 typedef struct _SegmentInfo
106 {
107  double
108  x1,
109  y1,
110  x2,
111  y2;
112 } SegmentInfo;
113 
114 typedef enum
115 {
121 } TransmitType;
122 
123 typedef struct _ChromaticityInfo
124 {
126  red_primary,
127  green_primary,
128  blue_primary,
129  white_point;
131 
132 #include "magick/blob.h"
133 #include "magick/colorspace.h"
134 #include "magick/cache-view.h"
135 #include "magick/color.h"
136 #include "magick/composite.h"
137 #include "magick/compress.h"
138 #include "magick/effect.h"
139 #include "magick/geometry.h"
140 #include "magick/layer.h"
141 #include "magick/locale_.h"
142 #include "magick/monitor.h"
143 #include "magick/pixel.h"
144 #include "magick/profile.h"
145 #include "magick/quantum.h"
146 #include "magick/resample.h"
147 #include "magick/resize.h"
148 #include "magick/semaphore.h"
149 #include "magick/stream.h"
150 #include "magick/timer.h"
151 
152 struct _Image
153 {
154  ClassType
156 
158  colorspace; /* colorspace of image data */
159 
161  compression; /* compression of image when read/write */
162 
163  size_t
164  quality; /* compression quality setting, meaning varies */
165 
166  OrientationType
167  orientation; /* photo orientation of image */
168 
170  taint, /* has image been modified since reading */
171  matte; /* is transparency channel defined and active */
172 
173  size_t
174  columns, /* physical size of image */
175  rows,
176  depth, /* depth of image on read/write */
177  colors; /* size of color table on read */
178 
180  *colormap,
181  background_color, /* current background color attribute */
182  border_color, /* current bordercolor attribute */
183  matte_color; /* current mattecolor attribute */
184 
185  double
187 
190 
193 
194  void
196 
197  ResolutionType
198  units; /* resolution/density ppi or ppc */
199 
200  char
202  *directory,
203  *geometry;
204 
205  ssize_t
207 
208  double
209  x_resolution, /* image resolution/density */
210  y_resolution;
211 
213  page, /* virtual canvas size and offset of image */
214  extract_info,
215  tile_info; /* deprecated */
216 
217  double
218  bias,
219  blur, /* deprecated */
220  fuzz; /* current color fuzz attribute */
221 
223  filter; /* resize/distort filter to apply */
224 
225  InterlaceType
227 
228  EndianType
229  endian; /* raw data integer ordering on read/write */
230 
232  gravity; /* Gravity attribute for positioning in image */
233 
235  compose; /* alpha composition method for layered images */
236 
238  dispose; /* GIF animation disposal method */
239 
240  struct _Image
241  *clip_mask;
242 
243  size_t
244  scene, /* index of image in multi-image file */
245  delay; /* Animation delay time */
246 
247  ssize_t
248  ticks_per_second; /* units for delay time, default 100 for GIF */
249 
250  size_t
252  total_colors;
253 
254  ssize_t
256 
257  ErrorInfo
259 
260  TimerInfo
262 
265 
266  void
268  *cache,
269  *attributes; /* deprecated */
270 
273 
274  BlobInfo
276 
277  char
278  filename[MaxTextExtent], /* images input filename */
279  magick_filename[MaxTextExtent], /* ditto with coders, and read_mods */
280  magick[MaxTextExtent]; /* Coder used to decode image */
281 
282  size_t
284  magick_rows;
285 
287  exception; /* Error handling report */
288 
290  debug; /* debug output attribute */
291 
292  volatile ssize_t
294 
297 
300  iptc_profile,
302 
303  size_t
304  generic_profiles; /* this & ProfileInfo is deprecated */
305 
306  size_t
308 
309  struct _Image
310  *previous, /* Image list links */
311  *list, /* Undo/Redo image processing list (for display) */
312  *next; /* Image list links */
313 
315  interpolate; /* Interpolation of color for between pixel lookups */
316 
319 
321  transparent_color; /* color for 'transparent' color index in GIF */
322 
323  struct _Image
324  *mask;
325 
328 
329  void
330  *properties, /* per image properities */
331  *artifacts; /* per image sequence image artifacts */
332 
333  ImageType
335 
337  dither; /* dithering method during color reduction */
338 
341 
344 
345  size_t
347 
348  time_t
350 
352  intensity; /* method to generate an intensity value from a pixel */
353 
354  size_t
355  duration; /* Total animation duration sum(delay*iterations) */
356 };
357 
359 {
362 
363  OrientationType
365 
368  adjoin,
369  affirm,
370  antialias;
371 
372  char
374  *extract,
375  *page,
376  *scenes;
377 
378  size_t
380  number_scenes,
381  depth;
382 
383  InterlaceType
385 
386  EndianType
388 
389  ResolutionType
391 
392  size_t
394 
395  char
396  *sampling_factor,
397  *server_name,
398  *font,
399  *texture,
400  *density;
401 
402  double
404  fuzz;
405 
407  background_color,
408  border_color,
409  matte_color;
410 
412  dither,
413  monochrome;
414 
415  size_t
417 
420 
421  ImageType
423 
426 
427  ssize_t
429 
431  ping,
432  verbose;
433 
434  char
436  *authenticate;
437 
440 
441  Image
442  *attributes; /* deprecated */
443 
444  void
446 
449 
450  void
452  *cache;
453 
456 
457  FILE
459 
460  void
462 
463  size_t
465 
466  char
467  magick[MaxTextExtent],
468  unique[MaxTextExtent],
469  zero[MaxTextExtent],
470  filename[MaxTextExtent];
471 
474 
475  char
476  *tile; /* deprecated */
477 
478  size_t
479  subimage, /* deprecated */
480  subrange; /* deprecated */
481 
483  pen; /* deprecated */
484 
485  size_t
487 
490 
493 
494  void
496 
499 };
500 
503 
504 extern MagickExport FILE
505  *GetImageInfoFile(const ImageInfo *);
506 
507 extern MagickExport Image
508  *AcquireImage(const ImageInfo *),
510  *CloneImage(const Image *,const size_t,const size_t,const MagickBooleanType,
511  ExceptionInfo *),
512  *DestroyImage(Image *),
514  *GetImageMask(const Image *,ExceptionInfo *),
515  *NewMagickImage(const ImageInfo *,const size_t,const size_t,
516  const MagickPixelPacket *),
517  *ReferenceImage(Image *),
518  *SmushImages(const Image *,const MagickBooleanType,const ssize_t,
519  ExceptionInfo *);
520 
521 extern MagickExport ImageInfo
522  *AcquireImageInfo(void),
523  *CloneImageInfo(const ImageInfo *),
525 
527  ClipImage(Image *),
528  ClipImagePath(Image *,const char *,const MagickBooleanType),
529  IsTaintImage(const Image *),
530  IsMagickConflict(const char *),
532  IsImageObject(const Image *),
533  ListMagickInfo(FILE *,ExceptionInfo *),
535  ResetImagePage(Image *,const char *),
537  SetImageClipMask(Image *,const Image *),
539  SetImageExtent(Image *,const size_t,const size_t),
540  SetImageInfo(ImageInfo *,const unsigned int,ExceptionInfo *),
541  SetImageMask(Image *,const Image *),
542  SetImageOpacity(Image *,const Quantum),
543  SetImageChannels(Image *,const size_t),
545  StripImage(Image *),
546  SyncImage(Image *),
547  SyncImageSettings(const ImageInfo *,Image *),
549 
550 extern MagickExport size_t
551  InterpretImageFilename(const ImageInfo *,Image *,const char *,int,char *);
552 
553 extern MagickExport ssize_t
555 
556 extern MagickExport size_t
558 
562 
563 extern MagickExport void
564  AcquireNextImage(const ImageInfo *,Image *),
569  SetImageInfoBlob(ImageInfo *,const void *,const size_t),
570  SetImageInfoFile(ImageInfo *,FILE *);
571 
572 #if defined(__cplusplus) || defined(c_plusplus)
573 }
574 #endif
575 
576 #endif
size_t rows
Definition: image.h:174
Definition: image.h:117
MagickExport MagickBooleanType SetImageClipMask(Image *, const Image *)
PixelIntensityMethod intensity
Definition: image.h:352
double y_resolution
Definition: image.h:209
EndianType endian
Definition: image.h:387
size_t signature
Definition: image.h:486
struct _Image * list
Definition: image.h:309
MagickExport VirtualPixelMethod GetImageVirtualPixelMethod(const Image *)
InterlaceType interlace
Definition: image.h:226
Definition: image.h:81
DisposeType dispose
Definition: image.h:238
Ascii85Info * ascii85
Definition: image.h:272
Definition: image.h:39
MagickProgressMonitor progress_monitor
Definition: image.h:264
ImageType type
Definition: image.h:334
size_t iterations
Definition: image.h:251
ssize_t ticks_per_second
Definition: image.h:248
MagickExport FILE * GetImageInfoFile(const ImageInfo *)
Definition: image.c:1344
size_t subrange
Definition: image.h:479
double pointsize
Definition: image.h:403
Definition: image.h:40
ProfileInfo iptc_profile
Definition: image.h:299
Definition: image.h:44
InterpolatePixelMethod
Definition: pixel.h:31
MagickExport MagickBooleanType ModifyImage(Image **, ExceptionInfo *)
OrientationType
Definition: image.h:77
MagickBooleanType ping
Definition: image.h:343
Definition: image.h:105
MagickExport size_t InterpretImageFilename(const ImageInfo *, Image *, const char *, int, char *)
Definition: image.c:1517
double x
Definition: image.h:100
Definition: exception.h:102
TransmitType
Definition: image.h:114
EndianType endian
Definition: image.h:229
MagickBooleanType taint
Definition: image.h:170
MagickExport MagickBooleanType StripImage(Image *)
PixelIntensityMethod
Definition: pixel.h:67
MagickBooleanType debug
Definition: image.h:473
Definition: image.h:41
Definition: image.h:58
Definition: image.h:358
MagickExport MagickBooleanType SetImageBackgroundColor(Image *)
InterlaceType
Definition: image.h:65
VirtualPixelMethod
Definition: cache-view.h:27
ColorspaceType colorspace
Definition: image.h:419
char magick[MaxTextExtent]
Definition: image.h:278
PreviewType
Definition: effect.h:27
Definition: image.h:85
void * artifacts
Definition: image.h:330
MagickExport ssize_t GetImageReferenceCount(Image *)
Definition: image.c:1436
Definition: image.h:123
struct _ChromaticityInfo ChromaticityInfo
double z
Definition: image.h:100
Definition: image.h:53
Definition: image.h:82
size_t colors
Definition: image.h:416
Definition: image.h:79
Definition: image.h:59
size_t duration
Definition: image.h:355
Definition: image.h:84
MagickExport MagickBooleanType ListMagickInfo(FILE *, ExceptionInfo *)
ResolutionType units
Definition: image.h:198
size_t delay
Definition: image.h:244
MagickExport ImageInfo * DestroyImageInfo(ImageInfo *)
Definition: image.c:1106
size_t magick_rows
Definition: image.h:283
Definition: pixel.h:131
MagickBooleanType verbose
Definition: image.h:431
Definition: image.h:62
MagickExport MagickBooleanType ClipImage(Image *)
Definition: blob.c:111
MagickExport ImageInfo * AcquireImageInfo(void)
char magick_filename[MaxTextExtent]
Definition: image.h:278
char * montage
Definition: image.h:201
Definition: image.h:69
MagickExport Image * NewMagickImage(const ImageInfo *, const size_t, const size_t, const MagickPixelPacket *)
CompressionType compression
Definition: image.h:161
InterlaceType interlace
Definition: image.h:384
ClassType storage_class
Definition: image.h:155
MagickExport MagickBooleanType SyncImagesSettings(ImageInfo *, Image *)
Definition: image.c:3519
RectangleInfo tile_offset
Definition: image.h:327
MagickExport MagickBooleanType SetImageOpacity(Image *, const Quantum)
EndianType
Definition: quantum.h:30
Definition: image.h:86
char * size
Definition: image.h:373
Definition: image.h:152
ExceptionType
Definition: exception.h:28
MagickExport Image * ReferenceImage(Image *)
ImageType type
Definition: image.h:422
Definition: image.h:46
void * attributes
Definition: image.h:267
Definition: image.h:93
StreamHandler stream
Definition: image.h:455
FilterTypes
Definition: resample.h:32
MagickExport MagickBooleanType SetImageStorageClass(Image *, const ClassType)
Definition: image.h:83
MagickExport MagickBooleanType SetImageColor(Image *, const MagickPixelPacket *)
void * profiles
Definition: image.h:195
MagickExport void DestroyImagePixels(Image *)
MagickExport void GetImageException(Image *, ExceptionInfo *)
MagickExport MagickBooleanType ClipImagePath(Image *, const char *, const MagickBooleanType)
ChannelType channel
Definition: image.h:439
MagickBooleanType
Definition: magick-type.h:214
char filename[MaxTextExtent]
Definition: image.h:278
size_t scene
Definition: image.h:244
Definition: image.h:56
ClassType
Definition: magick-type.h:207
Definition: image.h:61
MagickExport VirtualPixelMethod SetImageVirtualPixelMethod(const Image *, const VirtualPixelMethod)
Definition: image.c:3027
MagickBooleanType black_point_compensation
Definition: image.h:318
PixelPacket transparent_color
Definition: image.h:321
size_t length
Definition: image.h:464
ProfileInfo color_profile
Definition: image.h:299
MagickExport MagickBooleanType IsMagickConflict(const char *)
MagickExport ImageInfo * CloneImageInfo(const ImageInfo *)
Definition: image.h:60
Definition: pixel.h:104
VirtualPixelMethod virtual_pixel_method
Definition: image.h:489
Definition: image.h:97
void * blob
Definition: image.h:461
ProfileInfo * generic_profile
Definition: image.h:299
#define MaxTextExtent
Definition: method-attribute.h:106
MagickExport Image * DestroyImage(Image *)
GravityType gravity
Definition: image.h:232
struct _PrimaryInfo PrimaryInfo
volatile ssize_t reference_count
Definition: image.h:293
size_t scene
Definition: image.h:379
Definition: image.h:94
size_t channels
Definition: image.h:346
size_t magick_columns
Definition: image.h:283
MagickExport MagickBooleanType SetImageExtent(Image *, const size_t, const size_t)
MagickExport MagickBooleanType IsTaintImage(const Image *)
size_t MagickSizeType
Definition: magick-type.h:159
Definition: image.h:72
ResolutionType units
Definition: image.h:390
Definition: image.h:67
void * cache
Definition: image.h:267
CompressionType compression
Definition: image.h:361
OrientationType orientation
Definition: image.h:364
Definition: image.h:32
Definition: image.h:87
Definition: timer.h:40
Definition: image.h:52
MagickBooleanType monochrome
Definition: image.h:412
PixelPacket matte_color
Definition: image.h:407
MagickExport void SetImageInfoFile(ImageInfo *, FILE *)
Definition: image.c:2863
GravityType
Definition: geometry.h:77
Definition: image.h:37
double y2
Definition: image.h:108
MagickExport size_t GetImageChannels(Image *)
Definition: image.c:1405
MagickBooleanType dither
Definition: image.h:337
Definition: image.h:42
PixelPacket pen
Definition: image.h:483
MagickExport Image * AcquireImage(const ImageInfo *)
struct _Image * mask
Definition: image.h:323
char * tile
Definition: image.h:476
size_t signature
Definition: image.h:307
PreviewType preview_type
Definition: image.h:425
MagickExport void AcquireNextImage(const ImageInfo *, Image *)
Definition: profile.h:27
MagickBooleanType(* MagickProgressMonitor)(const char *, const MagickOffsetType, const MagickSizeType, void *)
Definition: monitor.h:26
SemaphoreInfo * semaphore
Definition: image.h:296
struct _Image * next
Definition: image.h:309
Definition: geometry.h:121
ssize_t offset
Definition: image.h:206
AlphaChannelType
Definition: image.h:30
Image * attributes
Definition: image.h:442
Definition: color.h:62
MagickExport MagickBooleanType SyncImage(Image *)
char * texture
Definition: image.h:396
RenderingIntent
Definition: profile.h:42
double y
Definition: image.h:100
Definition: image.h:35
MagickExport MagickBooleanType SetImageInfo(ImageInfo *, const unsigned int, ExceptionInfo *)
size_t quality
Definition: image.h:164
TimerInfo timer
Definition: image.h:261
ChannelType
Definition: magick-type.h:180
Definition: image.h:34
Definition: image.h:43
DisposeType
Definition: layer.h:25
MagickExport Image * SmushImages(const Image *, const MagickBooleanType, const ssize_t, ExceptionInfo *)
Definition: image.c:3214
Definition: image.h:68
MagickExport MagickBooleanType SyncImageSettings(const ImageInfo *, Image *)
size_t quality
Definition: image.h:393
Definition: image.h:36
Definition: compress.c:71
PrimaryInfo white_point
Definition: image.h:126
void * client_data
Definition: image.h:451
Definition: image.h:80
CompressionType
Definition: compress.h:25
ssize_t start_loop
Definition: image.h:255
RenderingIntent rendering_intent
Definition: image.h:192
ErrorInfo error
Definition: image.h:258
MagickExport void SetImageInfoBlob(ImageInfo *, const void *, const size_t)
MagickBooleanType synchronize
Definition: image.h:498
unsigned short Quantum
Definition: magick-type.h:96
MagickExport Image * GetImageClipMask(const Image *, ExceptionInfo *)
struct _Image * previous
Definition: image.h:309
PixelPacket transparent_color
Definition: image.h:492
MagickExport void GetImageInfo(ImageInfo *)
Definition: image.h:118
Definition: image.h:51
MagickExport Image * AppendImages(const Image *, const MagickBooleanType, ExceptionInfo *)
PixelPacket matte_color
Definition: image.h:180
Definition: image.h:38
Definition: image.h:57
Definition: image.h:116
Definition: image.h:92
time_t timestamp
Definition: image.h:349
ChromaticityInfo chromaticity
Definition: image.h:189
BlobInfo * blob
Definition: image.h:275
FILE * file
Definition: image.h:458
ColorspaceType
Definition: colorspace.h:25
RectangleInfo tile_info
Definition: image.h:213
MagickExport Image * CloneImage(const Image *, const size_t, const size_t, const MagickBooleanType, ExceptionInfo *)
size_t total_colors
Definition: image.h:251
Definition: image.h:119
void * properties
Definition: image.h:330
void * options
Definition: image.h:445
MagickExport MagickBooleanType ResetImagePage(Image *, const char *)
ImageType
Definition: image.h:49
Definition: image.h:71
Definition: image.h:73
Definition: image.h:33
MagickExport MagickBooleanType SetImageChannels(Image *, const size_t)
CompositeOperator compose
Definition: image.h:235
MagickExport MagickBooleanType SetImageMask(Image *, const Image *)
MagickExport void DisassociateImageStream(Image *)
CompositeOperator
Definition: composite.h:25
ResolutionType
Definition: image.h:90
#define MagickExport
Definition: method-attribute.h:98
MagickSizeType extent
Definition: image.h:340
char * view
Definition: image.h:435
OrientationType orientation
Definition: image.h:167
MagickProgressMonitor progress_monitor
Definition: image.h:448
double fuzz
Definition: image.h:218
MagickExport MagickBooleanType IsImageObject(const Image *)
struct _Image * clip_mask
Definition: image.h:240
MagickExport Image * GetImageMask(const Image *, ExceptionInfo *)
MagickExport MagickBooleanType IsHighDynamicRangeImage(const Image *, ExceptionInfo *)
Definition: image.h:45
struct _SegmentInfo SegmentInfo
Definition: image.h:54
MagickExport ExceptionType CatchImageException(Image *)
Definition: image.c:633
ssize_t group
Definition: image.h:428
Definition: image.h:70
void * client_data
Definition: image.h:267
double gamma
Definition: image.h:186
Definition: image.h:120
ColorspaceType colorspace
Definition: image.h:158
Definition: semaphore.c:58
Definition: image.h:74
size_t(* StreamHandler)(const Image *, const void *, const size_t)
Definition: stream.h:26
size_t generic_profiles
Definition: image.h:304
MagickBooleanType temporary
Definition: image.h:367
MagickBooleanType debug
Definition: image.h:290
void * profile
Definition: image.h:495
Definition: image.h:55
ExceptionInfo exception
Definition: image.h:287
InterpolatePixelMethod interpolate
Definition: image.h:315
FilterTypes filter
Definition: image.h:223