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