/*
- Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2014 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.
#ifndef _MAGICKCORE_PIXEL_H
#define _MAGICKCORE_PIXEL_H
+#include "MagickCore/colorspace.h"
+
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
-#include "MagickCore/colorspace.h"
-
#define MaxPixelChannels 32
#undef index
+/*
+ Pixel enum declarations.
+*/
typedef enum
{
UndefinedChannel = 0x0000,
BlackChannel = 0x0008,
AlphaChannel = 0x0010,
OpacityChannel = 0x0010,
- IndexChannel = 0x0020,
- MaskChannel = 0x0040,
- MetaChannel = 0x0080,
+ IndexChannel = 0x0020, /* Color Index Table? */
+ ReadMaskChannel = 0x0040, /* Pixel is Not Readable? */
+ WriteMaskChannel = 0x0080, /* Pixel is Write Protected? */
+ MetaChannel = 0x0100, /* ???? */
CompositeChannels = 0x002F,
AllChannels = 0x7ffffff,
/*
FUTURE: are these needed any more - they are more like hacks
SyncChannels for example is NOT a real channel but a 'flag'
It really says -- "User has not defined channels"
+ Though it does have extra meaning in the "-auto-level" operator
*/
TrueAlphaChannel = 0x0100, /* extract actual alpha channel from opacity */
RGBChannels = 0x0200, /* set alpha from grayscale mask in RGB */
BlackPixelChannel = 3,
AlphaPixelChannel = 4,
IndexPixelChannel = 5,
- MaskPixelChannel = 6, /* Image Write Mask */
- MetaPixelChannel = 7, /* ??? */
- IntensityPixelChannel = MaxPixelChannels, /* what are these ??? */
- CompositePixelChannel = MaxPixelChannels,
- SyncPixelChannel = MaxPixelChannels+1
+ ReadMaskPixelChannel = 6,
+ WriteMaskPixelChannel = 7,
+ MetaPixelChannel = 8,
+ IntensityPixelChannel = MaxPixelChannels, /* ???? */
+ CompositePixelChannel = MaxPixelChannels, /* ???? */
+ SyncPixelChannel = MaxPixelChannels+1 /* not a real channel */
} PixelChannel; /* must correspond to ChannelType */
typedef enum
AveragePixelIntensityMethod,
BrightnessPixelIntensityMethod,
LightnessPixelIntensityMethod,
+ MSPixelIntensityMethod,
Rec601LumaPixelIntensityMethod,
Rec601LuminancePixelIntensityMethod,
Rec709LumaPixelIntensityMethod,
IntegerInterpolatePixel, /* Integer (floor) interpolation */
MeshInterpolatePixel, /* Triangular Mesh interpolation */
NearestInterpolatePixel, /* Nearest Neighbour Only */
- SplineInterpolatePixel /* Cubic Spline (blurred) interpolation */
+ SplineInterpolatePixel /* Cubic Spline (blurred) interpolation */
/* FilterInterpolatePixel, ** Use resize filter - (very slow) */
} PixelInterpolateMethod;
+typedef enum
+{
+ UndefinedPixelMask = 0x000000,
+ ReadPixelMask = 0x000001,
+ WritePixelMask = 0x000002
+} PixelMask;
+
typedef enum
{
UndefinedPixelTrait = 0x000000,
BlendPixelTrait = 0x000004
} PixelTrait;
+typedef enum
+{
+ UndefinedPixel,
+ CharPixel,
+ DoublePixel,
+ FloatPixel,
+ LongPixel,
+ LongLongPixel,
+ QuantumPixel,
+ ShortPixel
+} StorageType;
+
+/*
+ Pixel typedef declarations.
+*/
typedef struct _PixelChannelMap
{
PixelChannel
black;
} PixelPacket;
-typedef enum
-{
- UndefinedPixel,
- CharPixel,
- DoublePixel,
- FloatPixel,
- LongPixel,
- LongLongPixel,
- QuantumPixel,
- ShortPixel
-} StorageType;
-
typedef struct _CacheView
CacheView_;
+/*
+ Pixel method declarations.
+*/
extern MagickExport MagickBooleanType
ExportImagePixels(Image *,const ssize_t,const ssize_t,const size_t,
const size_t,const char *,const StorageType,void *,ExceptionInfo *),