MagickCore 6.9.11-60
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
#define magick_attribute(x)
Definition deprecate.h:41
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:3782
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:3474
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:3287
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:3123
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:169
unsigned short Quantum
Definition magick-type.h:89
ClassType
Definition magick-type.h:196
size_t MagickSizeType
Definition magick-type.h:140
MagickBooleanType
Definition magick-type.h:203
#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