blob: 18ab70bdced8731cf7ac58af419d9b338bb9587e [file] [log] [blame]
/*
Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
obtain a copy of the License at
http://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
MagickCore image methods.
*/
#ifndef _MAGICKCORE_IMAGE_H
#define _MAGICKCORE_IMAGE_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#include <magick/color.h>
#define OpaqueOpacity ((Quantum) 0UL)
#define TransparentOpacity ((Quantum) QuantumRange)
typedef enum
{
UndefinedAlphaChannel,
ActivateAlphaChannel,
BackgroundAlphaChannel,
CopyAlphaChannel,
DeactivateAlphaChannel,
ExtractAlphaChannel,
OpaqueAlphaChannel,
ResetAlphaChannel, /* deprecated */
SetAlphaChannel,
ShapeAlphaChannel,
TransparentAlphaChannel
} 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/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; /* deprecated */
double
bias,
blur, /* deprecated */
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; /* deprecated */
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; /* this & ProfileInfo is deprecated */
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;
};
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; /* deprecated */
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; /* deprecated */
size_t
subimage, /* deprecated */
subrange; /* deprecated */
PixelPacket
pen; /* deprecated */
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 *),
*CombineImages(const Image *,const ChannelType,ExceptionInfo *),
*DestroyImage(Image *),
*GetImageClipMask(const Image *,ExceptionInfo *),
*GetImageMask(const Image *,ExceptionInfo *),
*NewMagickImage(const ImageInfo *,const size_t,const size_t,
const MagickPixelPacket *),
*ReferenceImage(Image *),
*SeparateImages(const Image *,const ChannelType,ExceptionInfo *),
*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),
GetImageAlphaChannel(const Image *),
IsTaintImage(const Image *),
IsMagickConflict(const char *),
IsHighDynamicRangeImage(const Image *,ExceptionInfo *),
IsImageObject(const Image *),
ListMagickInfo(FILE *,ExceptionInfo *),
ModifyImage(Image **,ExceptionInfo *),
ResetImagePage(Image *,const char *),
SeparateImageChannel(Image *,const ChannelType),
SetImageAlphaChannel(Image *,const AlphaChannelType),
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),
SetImageStorageClass(Image *,const ClassType),
SetImageType(Image *,const ImageType),
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 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