#ifndef _MAGICKCORE_IMAGE_H
#define _MAGICKCORE_IMAGE_H
#include "magick/color.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#define OpaqueOpacity ((Quantum) 0UL)
#define TransparentOpacity (QuantumRange)
typedef enum
{
UndefinedAlphaChannel,
ActivateAlphaChannel,
BackgroundAlphaChannel,
CopyAlphaChannel,
DeactivateAlphaChannel,
ExtractAlphaChannel,
OpaqueAlphaChannel,
ResetAlphaChannel,
SetAlphaChannel,
ShapeAlphaChannel,
TransparentAlphaChannel,
FlattenAlphaChannel,
RemoveAlphaChannel,
AssociateAlphaChannel,
DisassociateAlphaChannel
} AlphaChannelType;
typedef enum
{
UndefinedType,
BilevelType,
GrayscaleType,
GrayscaleMatteType,
PaletteType,
PaletteMatteType,
TrueColorType,
TrueColorMatteType,
ColorSeparationType,
ColorSeparationMatteType,
OptimizeType,
PaletteBilevelMatteType
} ImageType;
typedef enum
{
UndefinedInterlace,
NoInterlace,
LineInterlace,
PlaneInterlace,
PartitionInterlace,
GIFInterlace,
JPEGInterlace,
PNGInterlace
} InterlaceType;
typedef enum
{
UndefinedOrientation,
TopLeftOrientation,
TopRightOrientation,
BottomRightOrientation,
BottomLeftOrientation,
LeftTopOrientation,
RightTopOrientation,
RightBottomOrientation,
LeftBottomOrientation
} OrientationType;
typedef enum
{
UndefinedResolution,
PixelsPerInchResolution,
PixelsPerCentimeterResolution
} ResolutionType;
typedef struct _PrimaryInfo
{
double
x,
y,
z;
} PrimaryInfo;
typedef struct _SegmentInfo
{
double
x1,
y1,
x2,
y2;
} SegmentInfo;
typedef enum
{
UndefinedTransmitType,
FileTransmitType,
BlobTransmitType,
StreamTransmitType,
ImageTransmitType
} TransmitType;
typedef struct _ChromaticityInfo
{
PrimaryInfo
red_primary,
green_primary,
blue_primary,
white_point;
} ChromaticityInfo;
#include "magick/blob.h"
#include "magick/colorspace.h"
#include "magick/cache-view.h"
#include "magick/color.h"
#include "magick/composite.h"
#include "magick/compress.h"
#include "magick/effect.h"
#include "magick/geometry.h"
#include "magick/layer.h"
#include "magick/locale_.h"
#include "magick/monitor.h"
#include "magick/pixel.h"
#include "magick/profile.h"
#include "magick/quantum.h"
#include "magick/resample.h"
#include "magick/resize.h"
#include "magick/semaphore.h"
#include "magick/stream.h"
#include "magick/timer.h"
struct _Image
{
ClassType
storage_class;
ColorspaceType
colorspace;
CompressionType
compression;
size_t
quality;
OrientationType
orientation;
MagickBooleanType
taint,
matte;
size_t
columns,
rows,
depth,
colors;
PixelPacket
*colormap,
background_color,
border_color,
matte_color;
double
gamma;
ChromaticityInfo
chromaticity;
RenderingIntent
rendering_intent;
void
*profiles;
ResolutionType
units;
char
*montage,
*directory,
*geometry;
ssize_t
offset;
double
x_resolution,
y_resolution;
RectangleInfo
page,
extract_info,
tile_info;
double
bias,
blur,
fuzz;
FilterTypes
filter;
InterlaceType
interlace;
EndianType
endian;
GravityType
gravity;
CompositeOperator
compose;
DisposeType
dispose;
struct _Image
*clip_mask;
size_t
scene,
delay;
ssize_t
ticks_per_second;
size_t
iterations,
total_colors;
ssize_t
start_loop;
ErrorInfo
error;
TimerInfo
timer;
MagickProgressMonitor
progress_monitor;
void
*client_data,
*cache,
*attributes;
Ascii85Info
*ascii85;
BlobInfo
*blob;
char
filename[MaxTextExtent],
magick_filename[MaxTextExtent],
magick[MaxTextExtent];
size_t
magick_columns,
magick_rows;
ExceptionInfo
exception;
MagickBooleanType
debug;
volatile ssize_t
reference_count;
SemaphoreInfo
*semaphore;
ProfileInfo
color_profile,
iptc_profile,
*generic_profile;
size_t
generic_profiles;
size_t
signature;
struct _Image
*previous,
*list,
*next;
InterpolatePixelMethod
interpolate;
MagickBooleanType
black_point_compensation;
PixelPacket
transparent_color;
struct _Image
*mask;
RectangleInfo
tile_offset;
void
*properties,
*artifacts;
ImageType
type;
MagickBooleanType
dither;
MagickSizeType
extent;
MagickBooleanType
ping;
size_t
channels;
time_t
timestamp;
PixelIntensityMethod
intensity;
size_t
duration;
long
tietz_offset;
};
struct _ImageInfo
{
CompressionType
compression;
OrientationType
orientation;
MagickBooleanType
temporary,
adjoin,
affirm,
antialias;
char
*size,
*extract,
*page,
*scenes;
size_t
scene,
number_scenes,
depth;
InterlaceType
interlace;
EndianType
endian;
ResolutionType
units;
size_t
quality;
char
*sampling_factor,
*server_name,
*font,
*texture,
*density;
double
pointsize,
fuzz;
PixelPacket
background_color,
border_color,
matte_color;
MagickBooleanType
dither,
monochrome;
size_t
colors;
ColorspaceType
colorspace;
ImageType
type;
PreviewType
preview_type;
ssize_t
group;
MagickBooleanType
ping,
verbose;
char
*view,
*authenticate;
ChannelType
channel;
Image
*attributes;
void
*options;
MagickProgressMonitor
progress_monitor;
void
*client_data,
*cache;
StreamHandler
stream;
FILE
*file;
void
*blob;
size_t
length;
char
magick[MaxTextExtent],
unique[MaxTextExtent],
zero[MaxTextExtent],
filename[MaxTextExtent];
MagickBooleanType
debug;
char
*tile;
size_t
subimage,
subrange;
PixelPacket
pen;
size_t
signature;
VirtualPixelMethod
virtual_pixel_method;
PixelPacket
transparent_color;
void
*profile;
MagickBooleanType
synchronize;
};
extern MagickExport ExceptionType
CatchImageException(Image *);
extern MagickExport FILE
*GetImageInfoFile(const ImageInfo *);
extern MagickExport Image
*AcquireImage(const ImageInfo *),
*AppendImages(const Image *,const MagickBooleanType,ExceptionInfo *),
*CloneImage(const Image *,const size_t,const size_t,const MagickBooleanType,
ExceptionInfo *),
*DestroyImage(Image *),
*GetImageClipMask(const Image *,ExceptionInfo *),
*GetImageMask(const Image *,ExceptionInfo *),
*NewMagickImage(const ImageInfo *,const size_t,const size_t,
const MagickPixelPacket *),
*ReferenceImage(Image *),
*SmushImages(const Image *,const MagickBooleanType,const ssize_t,
ExceptionInfo *);
extern MagickExport ImageInfo
*AcquireImageInfo(void),
*CloneImageInfo(const ImageInfo *),
*DestroyImageInfo(ImageInfo *);
extern MagickExport MagickBooleanType
ClipImage(Image *),
ClipImagePath(Image *,const char *,const MagickBooleanType),
CopyImagePixels(Image *,const Image *,const RectangleInfo *,
const OffsetInfo *,ExceptionInfo *),
IsTaintImage(const Image *),
IsMagickConflict(const char *),
IsHighDynamicRangeImage(const Image *,ExceptionInfo *),
IsImageObject(const Image *),
ListMagickInfo(FILE *,ExceptionInfo *),
ModifyImage(Image **,ExceptionInfo *),
ResetImagePage(Image *,const char *),
SetImageBackgroundColor(Image *),
SetImageClipMask(Image *,const Image *),
SetImageColor(Image *,const MagickPixelPacket *),
SetImageExtent(Image *,const size_t,const size_t),
SetImageInfo(ImageInfo *,const unsigned int,ExceptionInfo *),
SetImageMask(Image *,const Image *),
SetImageOpacity(Image *,const Quantum),
SetImageChannels(Image *,const size_t),
SetImageStorageClass(Image *,const ClassType),
StripImage(Image *),
SyncImage(Image *),
SyncImageSettings(const ImageInfo *,Image *),
SyncImagesSettings(ImageInfo *,Image *);
extern MagickExport size_t
InterpretImageFilename(const ImageInfo *,Image *,const char *,int,char *);
extern MagickExport ssize_t
GetImageReferenceCount(Image *);
extern MagickExport size_t
GetImageChannels(Image *);
extern MagickExport VirtualPixelMethod
GetImageVirtualPixelMethod(const Image *),
SetImageVirtualPixelMethod(const Image *,const VirtualPixelMethod);
extern MagickExport void
AcquireNextImage(const ImageInfo *,Image *),
DestroyImagePixels(Image *),
DisassociateImageStream(Image *),
GetImageException(Image *,ExceptionInfo *),
GetImageInfo(ImageInfo *),
SetImageInfoBlob(ImageInfo *,const void *,const size_t),
SetImageInfoFile(ImageInfo *,FILE *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif