MagickCore  6.9.10
Convert, Edit, Or Compose Bitmap Images
image.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2018 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  https://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  long
359 };
360 
362 {
365 
366  OrientationType
368 
371  adjoin,
372  affirm,
373  antialias;
374 
375  char
377  *extract,
378  *page,
379  *scenes;
380 
381  size_t
383  number_scenes,
384  depth;
385 
386  InterlaceType
388 
389  EndianType
391 
392  ResolutionType
394 
395  size_t
397 
398  char
399  *sampling_factor,
400  *server_name,
401  *font,
402  *texture,
403  *density;
404 
405  double
407  fuzz;
408 
410  background_color,
411  border_color,
412  matte_color;
413 
415  dither,
416  monochrome;
417 
418  size_t
420 
423 
424  ImageType
426 
429 
430  ssize_t
432 
434  ping,
435  verbose;
436 
437  char
439  *authenticate;
440 
443 
444  Image
445  *attributes; /* deprecated */
446 
447  void
449 
452 
453  void
455  *cache;
456 
459 
460  FILE
462 
463  void
465 
466  size_t
468 
469  char
470  magick[MaxTextExtent],
471  unique[MaxTextExtent],
472  zero[MaxTextExtent],
473  filename[MaxTextExtent];
474 
477 
478  char
479  *tile; /* deprecated */
480 
481  size_t
482  subimage, /* deprecated */
483  subrange; /* deprecated */
484 
486  pen; /* deprecated */
487 
488  size_t
490 
493 
496 
497  void
499 
502 };
503 
506 
507 extern MagickExport FILE
508  *GetImageInfoFile(const ImageInfo *);
509 
510 extern MagickExport Image
511  *AcquireImage(const ImageInfo *),
513  *CloneImage(const Image *,const size_t,const size_t,const MagickBooleanType,
514  ExceptionInfo *),
515  *DestroyImage(Image *),
517  *GetImageMask(const Image *,ExceptionInfo *),
518  *NewMagickImage(const ImageInfo *,const size_t,const size_t,
519  const MagickPixelPacket *),
520  *ReferenceImage(Image *),
521  *SmushImages(const Image *,const MagickBooleanType,const ssize_t,
522  ExceptionInfo *);
523 
524 extern MagickExport ImageInfo
525  *AcquireImageInfo(void),
526  *CloneImageInfo(const ImageInfo *),
528 
530  ClipImage(Image *),
531  ClipImagePath(Image *,const char *,const MagickBooleanType),
532  CopyImagePixels(Image *,const Image *,const RectangleInfo *,
533  const OffsetInfo *,ExceptionInfo *),
534  IsTaintImage(const Image *),
535  IsMagickConflict(const char *),
537  IsImageObject(const Image *),
538  ListMagickInfo(FILE *,ExceptionInfo *),
540  ResetImagePage(Image *,const char *),
543  SetImageClipMask(Image *,const Image *),
545  SetImageExtent(Image *,const size_t,const size_t),
546  SetImageInfo(ImageInfo *,const unsigned int,ExceptionInfo *),
547  SetImageMask(Image *,const Image *),
548  SetImageOpacity(Image *,const Quantum),
549  SetImageChannels(Image *,const size_t),
551  StripImage(Image *),
552  SyncImage(Image *),
553  SyncImageSettings(const ImageInfo *,Image *),
555 
556 extern MagickExport size_t
557  InterpretImageFilename(const ImageInfo *,Image *,const char *,int,char *);
558 
559 extern MagickExport ssize_t
561 
562 extern MagickExport size_t
564 
568 
569 extern MagickExport void
570  AcquireNextImage(const ImageInfo *,Image *),
575  SetImageInfoBlob(ImageInfo *,const void *,const size_t),
576  SetImageInfoFile(ImageInfo *,FILE *);
577 
578 #if defined(__cplusplus) || defined(c_plusplus)
579 }
580 #endif
581 
582 #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:390
size_t signature
Definition: image.h:489
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:1495
size_t subrange
Definition: image.h:482
MagickExport MagickBooleanType ResetImagePixels(Image *, ExceptionInfo *)
double pointsize
Definition: image.h:406
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:1668
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:476
MagickExport MagickBooleanType CopyImagePixels(Image *, const Image *, const RectangleInfo *, const OffsetInfo *, ExceptionInfo *)
Definition: image.h:41
Definition: image.h:58
Definition: image.h:361
MagickExport MagickBooleanType SetImageBackgroundColor(Image *)
InterlaceType
Definition: image.h:65
VirtualPixelMethod
Definition: cache-view.h:27
ColorspaceType colorspace
Definition: image.h:422
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:1587
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:419
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:1257
size_t magick_rows
Definition: image.h:283
Definition: pixel.h:131
MagickBooleanType verbose
Definition: image.h:434
Definition: image.h:62
MagickExport MagickBooleanType ClipImage(Image *)
Definition: blob.c:114
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:387
ClassType storage_class
Definition: image.h:155
MagickExport MagickBooleanType SyncImagesSettings(ImageInfo *, Image *)
Definition: image.c:3778
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:376
Definition: image.h:152
ExceptionType
Definition: exception.h:28
MagickExport Image * ReferenceImage(Image *)
ImageType type
Definition: image.h:425
Definition: image.h:46
void * attributes
Definition: image.h:267
Definition: image.h:93
StreamHandler stream
Definition: image.h:458
FilterTypes
Definition: resample.h:32
MagickExport MagickBooleanType SetImageStorageClass(Image *, const ClassType)
Definition: image.h:83
MagickExport MagickBooleanType SetImageColor(Image *, const MagickPixelPacket *)
Definition: geometry.h:115
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:442
MagickBooleanType
Definition: magick-type.h:189
char filename[MaxTextExtent]
Definition: image.h:278
size_t scene
Definition: image.h:244
Definition: image.h:56
ClassType
Definition: magick-type.h:182
Definition: image.h:61
MagickExport VirtualPixelMethod SetImageVirtualPixelMethod(const Image *, const VirtualPixelMethod)
Definition: image.c:3283
MagickBooleanType black_point_compensation
Definition: image.h:318
PixelPacket transparent_color
Definition: image.h:321
size_t length
Definition: image.h:467
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:492
Definition: image.h:97
void * blob
Definition: image.h:464
ProfileInfo * generic_profile
Definition: image.h:299
#define MaxTextExtent
Definition: method-attribute.h:107
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:382
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:134
Definition: image.h:72
ResolutionType units
Definition: image.h:393
Definition: image.h:67
long tietz_offset
Definition: image.h:358
void * cache
Definition: image.h:267
CompressionType compression
Definition: image.h:364
OrientationType orientation
Definition: image.h:367
Definition: image.h:32
Definition: image.h:87
Definition: timer.h:40
Definition: image.h:52
MagickBooleanType monochrome
Definition: image.h:415
PixelPacket matte_color
Definition: image.h:410
MagickExport void SetImageInfoFile(ImageInfo *, FILE *)
Definition: image.c:3119
GravityType
Definition: geometry.h:78
Definition: image.h:37
double y2
Definition: image.h:108
MagickExport size_t GetImageChannels(Image *)
Definition: image.c:1556
MagickBooleanType dither
Definition: image.h:337
Definition: image.h:42
PixelPacket pen
Definition: image.h:486
MagickExport Image * AcquireImage(const ImageInfo *)
struct _Image * mask
Definition: image.h:323
char * tile
Definition: image.h:479
size_t signature
Definition: image.h:307
PreviewType preview_type
Definition: image.h:428
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:122
ssize_t offset
Definition: image.h:206
AlphaChannelType
Definition: image.h:30
Image * attributes
Definition: image.h:445
Definition: color.h:64
MagickExport MagickBooleanType SyncImage(Image *)
char * texture
Definition: image.h:399
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:155
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:3470
Definition: image.h:68
MagickExport MagickBooleanType SyncImageSettings(const ImageInfo *, Image *)
size_t quality
Definition: image.h:396
Definition: image.h:36
Definition: compress.c:71
PrimaryInfo white_point
Definition: image.h:126
void * client_data
Definition: image.h:454
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:501
unsigned short Quantum
Definition: magick-type.h:85
MagickExport Image * GetImageClipMask(const Image *, ExceptionInfo *)
struct _Image * previous
Definition: image.h:309
PixelPacket transparent_color
Definition: image.h:495
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:461
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:448
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:438
OrientationType orientation
Definition: image.h:167
MagickProgressMonitor progress_monitor
Definition: image.h:451
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:637
ssize_t group
Definition: image.h:431
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:59
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:370
MagickBooleanType debug
Definition: image.h:290
void * profile
Definition: image.h:498
Definition: image.h:55
ExceptionInfo exception
Definition: image.h:287
InterpolatePixelMethod interpolate
Definition: image.h:315
FilterTypes filter
Definition: image.h:223