MagickCore 6.9.12-20
Convert, Edit, Or Compose Bitmap Images
image.h
Go to the documentation of this file.
1/*
2 Copyright 1999-2021 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. You may
6 obtain a copy of the License at
7
8 https://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)
24extern "C" {
25#endif
26
27#define OpaqueOpacity ((Quantum) 0UL)
28#define TransparentOpacity (QuantumRange)
29
30typedef enum
31{
39 ResetAlphaChannel, /* deprecated */
48
49typedef enum
50{
64
65typedef enum
66{
76
77typedef enum
78{
89
90typedef enum
91{
96
97typedef struct _PrimaryInfo
98{
99 double
104
105typedef struct _SegmentInfo
106{
107 double
113
114typedef enum
115{
122
123typedef struct _ChromaticityInfo
124{
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
152struct _Image
153{
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
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 */
176 depth, /* depth of image on read/write */
177 colors; /* size of color table on read */
178
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
198 units; /* resolution/density ppi or ppc */
199
200 char
204
205 ssize_t
207
208 double
209 x_resolution, /* image resolution/density */
211
213 page, /* virtual canvas size and offset of image */
215 tile_info; /* deprecated */
216
217 double
219 blur, /* deprecated */
220 fuzz; /* current color fuzz attribute */
221
223 filter; /* resize/distort filter to apply */
224
227
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
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
253
254 ssize_t
256
259
262
265
266 void
269 *attributes; /* deprecated */
270
273
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
285
287 exception; /* Error handling report */
288
290 debug; /* debug output attribute */
291
292 volatile ssize_t
294
297
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
325
328
329 void
330 *properties, /* per image properities */
331 *artifacts; /* per image sequence image artifacts */
332
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
368
374
375 char
380
381 size_t
385
388
391
394
395 size_t
397
398 char
404
405 double
408
413
417
418 size_t
420
423
426
429
430 ssize_t
432
436
437 char
440
443
444 Image
445 *attributes; /* deprecated */
446
447 void
449
452
453 void
456
459
460 FILE
462
463 void
465
466 size_t
468
469 char
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
507extern MagickExport FILE
508 *GetImageInfoFile(const ImageInfo *);
509
510extern MagickExport Image
513 *CloneImage(const Image *,const size_t,const size_t,const MagickBooleanType,
514 ExceptionInfo *),
518 *NewMagickImage(const ImageInfo *,const size_t,const size_t,
519 const MagickPixelPacket *),
521 *SmushImages(const Image *,const MagickBooleanType,const ssize_t,
522 ExceptionInfo *);
523
528
531 ClipImagePath(Image *,const char *,const MagickBooleanType),
533 const OffsetInfo *,ExceptionInfo *),
535 IsMagickConflict(const char *) magick_attribute((__pure__)),
540 ResetImagePage(Image *,const char *),
545 SetImageExtent(Image *,const size_t,const size_t),
546 SetImageInfo(ImageInfo *,const unsigned int,ExceptionInfo *),
549 SetImageChannels(Image *,const size_t),
555
556extern MagickExport size_t
557 InterpretImageFilename(const ImageInfo *,Image *,const char *,int,char *);
558
559extern MagickExport ssize_t
561
562extern MagickExport size_t
564
568
569extern MagickExport void
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
VirtualPixelMethod
Definition: cache-view.h:28
ColorspaceType
Definition: colorspace.h:26
CompositeOperator
Definition: composite.h:26
CompressionType
Definition: compress.h:26
MagickExport MagickBooleanType magick_attribute((deprecated))
PreviewType
Definition: effect.h:28
ExceptionType
Definition: exception.h:29
GravityType
Definition: geometry.h:80
OrientationType
Definition: image.h:78
@ LeftTopOrientation
Definition: image.h:84
@ LeftBottomOrientation
Definition: image.h:87
@ TopLeftOrientation
Definition: image.h:80
@ RightTopOrientation
Definition: image.h:85
@ TopRightOrientation
Definition: image.h:81
@ UndefinedOrientation
Definition: image.h:79
@ RightBottomOrientation
Definition: image.h:86
@ BottomLeftOrientation
Definition: image.h:83
@ BottomRightOrientation
Definition: image.h:82
MagickExport void GetImageException(Image *, ExceptionInfo *)
MagickExport MagickBooleanType IsImageObject(const Image *)
MagickExport MagickBooleanType SyncImagesSettings(ImageInfo *, Image *)
Definition: image.c:3768
MagickExport Image * CloneImage(const Image *, const size_t, const size_t, const MagickBooleanType, ExceptionInfo *)
MagickExport MagickBooleanType ResetImagePixels(Image *, ExceptionInfo *)
MagickExport Image * SmushImages(const Image *, const MagickBooleanType, const ssize_t, ExceptionInfo *)
Definition: image.c:3460
MagickExport MagickBooleanType SetImageMask(Image *, const Image *)
MagickExport MagickBooleanType SetImageClipMask(Image *, const Image *)
MagickExport size_t InterpretImageFilename(const ImageInfo *, Image *, const char *, int, char *)
Definition: image.c:1658
MagickExport MagickBooleanType ResetImagePage(Image *, const char *)
ImageType
Definition: image.h:50
@ GrayscaleMatteType
Definition: image.h:54
@ TrueColorType
Definition: image.h:57
@ ColorSeparationMatteType
Definition: image.h:60
@ TrueColorMatteType
Definition: image.h:58
@ PaletteMatteType
Definition: image.h:56
@ ColorSeparationType
Definition: image.h:59
@ BilevelType
Definition: image.h:52
@ PaletteBilevelMatteType
Definition: image.h:62
@ UndefinedType
Definition: image.h:51
@ GrayscaleType
Definition: image.h:53
@ OptimizeType
Definition: image.h:61
@ PaletteType
Definition: image.h:55
ResolutionType
Definition: image.h:91
@ PixelsPerInchResolution
Definition: image.h:93
@ PixelsPerCentimeterResolution
Definition: image.h:94
@ UndefinedResolution
Definition: image.h:92
MagickExport size_t GetImageChannels(Image *)
Definition: image.c:1546
MagickExport MagickBooleanType ListMagickInfo(FILE *, ExceptionInfo *)
MagickExport MagickBooleanType SyncImage(Image *)
MagickExport VirtualPixelMethod GetImageVirtualPixelMethod(const Image *)
MagickExport Image * NewMagickImage(const ImageInfo *, const size_t, const size_t, const MagickPixelPacket *)
MagickExport MagickBooleanType ModifyImage(Image **, ExceptionInfo *)
MagickExport void DisassociateImageStream(Image *)
MagickExport MagickBooleanType IsTaintImage(const Image *)
MagickExport Image * DestroyImage(Image *)
struct _PrimaryInfo PrimaryInfo
AlphaChannelType
Definition: image.h:31
@ TransparentAlphaChannel
Definition: image.h:42
@ OpaqueAlphaChannel
Definition: image.h:38
@ RemoveAlphaChannel
Definition: image.h:44
@ AssociateAlphaChannel
Definition: image.h:45
@ DisassociateAlphaChannel
Definition: image.h:46
@ ResetAlphaChannel
Definition: image.h:39
@ ActivateAlphaChannel
Definition: image.h:33
@ SetAlphaChannel
Definition: image.h:40
@ DeactivateAlphaChannel
Definition: image.h:36
@ CopyAlphaChannel
Definition: image.h:35
@ FlattenAlphaChannel
Definition: image.h:43
@ ShapeAlphaChannel
Definition: image.h:41
@ BackgroundAlphaChannel
Definition: image.h:34
@ ExtractAlphaChannel
Definition: image.h:37
@ UndefinedAlphaChannel
Definition: image.h:32
MagickExport MagickBooleanType SetImageBackgroundColor(Image *)
MagickExport Image * GetImageMask(const Image *, ExceptionInfo *) magick_attribute((__pure__))
MagickExport Image * AcquireImage(const ImageInfo *)
MagickExport VirtualPixelMethod SetImageVirtualPixelMethod(const Image *, const VirtualPixelMethod)
Definition: image.c:3273
MagickExport void GetImageInfo(ImageInfo *)
MagickExport MagickBooleanType SetImageOpacity(Image *, const Quantum)
TransmitType
Definition: image.h:115
@ ImageTransmitType
Definition: image.h:120
@ UndefinedTransmitType
Definition: image.h:116
@ FileTransmitType
Definition: image.h:117
@ BlobTransmitType
Definition: image.h:118
@ StreamTransmitType
Definition: image.h:119
MagickExport ImageInfo * DestroyImageInfo(ImageInfo *)
Definition: image.c:1247
MagickExport void AcquireNextImage(const ImageInfo *, Image *)
MagickExport ExceptionType CatchImageException(Image *)
Definition: image.c:621
MagickExport MagickBooleanType SetImageStorageClass(Image *, const ClassType)
MagickExport MagickBooleanType SetImageExtent(Image *, const size_t, const size_t)
MagickExport MagickBooleanType ClipImage(Image *)
MagickExport MagickBooleanType IsMagickConflict(const char *) magick_attribute((__pure__))
MagickExport void SetImageInfoFile(ImageInfo *, FILE *)
Definition: image.c:3109
MagickExport void DestroyImagePixels(Image *)
struct _SegmentInfo SegmentInfo
MagickExport ImageInfo * AcquireImageInfo(void)
MagickExport Image * GetImageClipMask(const Image *, ExceptionInfo *) magick_attribute((__pure__))
struct _ChromaticityInfo ChromaticityInfo
MagickExport Image * ReferenceImage(Image *)
MagickExport void SetImageInfoBlob(ImageInfo *, const void *, const size_t)
MagickExport MagickBooleanType SyncImageSettings(const ImageInfo *, Image *)
MagickExport Image * AppendImages(const Image *, const MagickBooleanType, ExceptionInfo *)
MagickExport MagickBooleanType SetImageColor(Image *, const MagickPixelPacket *)
MagickExport ImageInfo * CloneImageInfo(const ImageInfo *)
MagickExport MagickBooleanType SetImageInfo(ImageInfo *, const unsigned int, ExceptionInfo *)
MagickExport MagickBooleanType ClipImagePath(Image *, const char *, const MagickBooleanType)
MagickExport MagickBooleanType CopyImagePixels(Image *, const Image *, const RectangleInfo *, const OffsetInfo *, ExceptionInfo *)
MagickExport MagickBooleanType IsHighDynamicRangeImage(const Image *, ExceptionInfo *)
MagickExport MagickBooleanType SetImageChannels(Image *, const size_t)
InterlaceType
Definition: image.h:66
@ PartitionInterlace
Definition: image.h:71
@ PNGInterlace
Definition: image.h:74
@ GIFInterlace
Definition: image.h:72
@ JPEGInterlace
Definition: image.h:73
@ LineInterlace
Definition: image.h:69
@ NoInterlace
Definition: image.h:68
@ PlaneInterlace
Definition: image.h:70
@ UndefinedInterlace
Definition: image.h:67
MagickExport ssize_t GetImageReferenceCount(Image *)
Definition: image.c:1577
MagickExport MagickBooleanType StripImage(Image *)
MagickExport FILE * GetImageInfoFile(const ImageInfo *)
Definition: image.c:1485
DisposeType
Definition: layer.h:26
ChannelType
Definition: magick-type.h:165
unsigned short Quantum
Definition: magick-type.h:85
ClassType
Definition: magick-type.h:192
size_t MagickSizeType
Definition: magick-type.h:136
MagickBooleanType
Definition: magick-type.h:199
#define MagickExport
Definition: method-attribute.h:80
#define MaxTextExtent
Definition: method-attribute.h:89
MagickBooleanType(* MagickProgressMonitor)(const char *, const MagickOffsetType, const MagickSizeType, void *)
Definition: monitor.h:26
PixelIntensityMethod
Definition: pixel.h:68
InterpolatePixelMethod
Definition: pixel.h:32
RenderingIntent
Definition: profile.h:43
EndianType
Definition: quantum.h:32
FilterTypes
Definition: resample.h:33
size_t(* StreamHandler)(const Image *, const void *, const size_t)
Definition: stream.h:26
Definition: semaphore.c:61
Definition: compress.c:70
Definition: blob.c:116
Definition: image.h:124
PrimaryInfo green_primary
Definition: image.h:127
PrimaryInfo red_primary
Definition: image.h:126
PrimaryInfo white_point
Definition: image.h:129
PrimaryInfo blue_primary
Definition: image.h:128
Definition: color.h:65
Definition: exception.h:103
Definition: image.h:362
PixelPacket border_color
Definition: image.h:411
MagickBooleanType monochrome
Definition: image.h:416
MagickBooleanType debug
Definition: image.h:476
char * texture
Definition: image.h:402
PreviewType preview_type
Definition: image.h:428
char filename[MaxTextExtent]
Definition: image.h:473
MagickBooleanType verbose
Definition: image.h:435
size_t number_scenes
Definition: image.h:383
PixelPacket pen
Definition: image.h:486
Image * attributes
Definition: image.h:445
char * page
Definition: image.h:378
void * blob
Definition: image.h:464
size_t signature
Definition: image.h:489
char * server_name
Definition: image.h:400
char * scenes
Definition: image.h:379
PixelPacket transparent_color
Definition: image.h:495
StreamHandler stream
Definition: image.h:458
ImageType type
Definition: image.h:425
MagickBooleanType affirm
Definition: image.h:372
MagickBooleanType dither
Definition: image.h:415
void * options
Definition: image.h:448
MagickBooleanType adjoin
Definition: image.h:371
size_t depth
Definition: image.h:384
size_t subrange
Definition: image.h:483
CompressionType compression
Definition: image.h:364
ResolutionType units
Definition: image.h:393
size_t colors
Definition: image.h:419
VirtualPixelMethod virtual_pixel_method
Definition: image.h:492
double pointsize
Definition: image.h:406
char * density
Definition: image.h:403
MagickProgressMonitor progress_monitor
Definition: image.h:451
OrientationType orientation
Definition: image.h:367
double fuzz
Definition: image.h:407
FILE * file
Definition: image.h:461
char * tile
Definition: image.h:479
PixelPacket background_color
Definition: image.h:410
PixelPacket matte_color
Definition: image.h:412
ColorspaceType colorspace
Definition: image.h:422
char * extract
Definition: image.h:377
void * client_data
Definition: image.h:454
ssize_t group
Definition: image.h:431
char zero[MaxTextExtent]
Definition: image.h:472
char magick[MaxTextExtent]
Definition: image.h:470
size_t quality
Definition: image.h:396
InterlaceType interlace
Definition: image.h:387
char * size
Definition: image.h:376
MagickBooleanType synchronize
Definition: image.h:501
MagickBooleanType temporary
Definition: image.h:370
char unique[MaxTextExtent]
Definition: image.h:471
char * authenticate
Definition: image.h:439
MagickBooleanType antialias
Definition: image.h:373
void * profile
Definition: image.h:498
ChannelType channel
Definition: image.h:442
size_t length
Definition: image.h:467
char * font
Definition: image.h:401
char * view
Definition: image.h:438
char * sampling_factor
Definition: image.h:399
void * cache
Definition: image.h:455
size_t subimage
Definition: image.h:482
size_t scene
Definition: image.h:382
EndianType endian
Definition: image.h:390
MagickBooleanType ping
Definition: image.h:434
Definition: image.h:153
ColorspaceType colorspace
Definition: image.h:158
ExceptionInfo exception
Definition: image.h:287
EndianType endian
Definition: image.h:229
size_t iterations
Definition: image.h:251
size_t delay
Definition: image.h:245
TimerInfo timer
Definition: image.h:261
long tietz_offset
Definition: image.h:358
MagickBooleanType debug
Definition: image.h:290
RectangleInfo tile_info
Definition: image.h:215
size_t channels
Definition: image.h:346
RectangleInfo tile_offset
Definition: image.h:327
Ascii85Info * ascii85
Definition: image.h:272
ssize_t offset
Definition: image.h:206
size_t quality
Definition: image.h:164
PixelPacket border_color
Definition: image.h:182
char filename[MaxTextExtent]
Definition: image.h:278
OrientationType orientation
Definition: image.h:167
double blur
Definition: image.h:219
ClassType storage_class
Definition: image.h:155
PixelIntensityMethod intensity
Definition: image.h:352
DisposeType dispose
Definition: image.h:238
void * client_data
Definition: image.h:267
char * directory
Definition: image.h:202
double fuzz
Definition: image.h:220
MagickBooleanType taint
Definition: image.h:170
size_t columns
Definition: image.h:174
CompositeOperator compose
Definition: image.h:235
SemaphoreInfo * semaphore
Definition: image.h:296
size_t duration
Definition: image.h:355
struct _Image * mask
Definition: image.h:323
ProfileInfo color_profile
Definition: image.h:299
PixelPacket transparent_color
Definition: image.h:321
FilterTypes filter
Definition: image.h:223
char * geometry
Definition: image.h:203
char * montage
Definition: image.h:201
BlobInfo * blob
Definition: image.h:275
PixelPacket matte_color
Definition: image.h:183
size_t colors
Definition: image.h:177
MagickSizeType extent
Definition: image.h:340
ChromaticityInfo chromaticity
Definition: image.h:189
double y_resolution
Definition: image.h:210
InterpolatePixelMethod interpolate
Definition: image.h:315
PixelPacket background_color
Definition: image.h:181
char magick[MaxTextExtent]
Definition: image.h:280
RectangleInfo page
Definition: image.h:213
size_t signature
Definition: image.h:307
size_t depth
Definition: image.h:176
MagickBooleanType black_point_compensation
Definition: image.h:318
MagickBooleanType dither
Definition: image.h:337
ssize_t ticks_per_second
Definition: image.h:248
size_t total_colors
Definition: image.h:252
void * profiles
Definition: image.h:195
void * artifacts
Definition: image.h:331
ErrorInfo error
Definition: image.h:258
struct _Image * clip_mask
Definition: image.h:240
void * properties
Definition: image.h:330
void * attributes
Definition: image.h:269
void * cache
Definition: image.h:268
InterlaceType interlace
Definition: image.h:226
RenderingIntent rendering_intent
Definition: image.h:192
ProfileInfo iptc_profile
Definition: image.h:300
MagickBooleanType matte
Definition: image.h:171
size_t rows
Definition: image.h:175
size_t generic_profiles
Definition: image.h:304
ssize_t start_loop
Definition: image.h:255
struct _Image * previous
Definition: image.h:309
RectangleInfo extract_info
Definition: image.h:214
MagickProgressMonitor progress_monitor
Definition: image.h:264
GravityType gravity
Definition: image.h:232
ImageType type
Definition: image.h:334
PixelPacket * colormap
Definition: image.h:180
struct _Image * next
Definition: image.h:312
CompressionType compression
Definition: image.h:161
volatile ssize_t reference_count
Definition: image.h:293
size_t scene
Definition: image.h:244
ProfileInfo * generic_profile
Definition: image.h:301
double bias
Definition: image.h:218
struct _Image * list
Definition: image.h:311
double gamma
Definition: image.h:186
double x_resolution
Definition: image.h:209
char magick_filename[MaxTextExtent]
Definition: image.h:279
ResolutionType units
Definition: image.h:198
size_t magick_rows
Definition: image.h:284
size_t magick_columns
Definition: image.h:283
time_t timestamp
Definition: image.h:349
MagickBooleanType ping
Definition: image.h:343
Definition: pixel.h:105
Definition: geometry.h:117
Definition: pixel.h:132
Definition: image.h:98
double y
Definition: image.h:101
double z
Definition: image.h:102
double x
Definition: image.h:100
Definition: profile.h:28
Definition: geometry.h:124
Definition: image.h:106
double x2
Definition: image.h:110
double y2
Definition: image.h:111
double y1
Definition: image.h:109
double x1
Definition: image.h:108
Definition: timer.h:41