]> granicus.if.org Git - imagemagick/blob - MagickCore/pixel.h
(no commit message)
[imagemagick] / MagickCore / pixel.h
1 /*
2   Copyright 1999-2011 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.
6   obtain a copy of the License at
7
8     http://www.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 constitute methods.
17 */
18 #ifndef _MAGICKCORE_PIXEL_H
19 #define _MAGICKCORE_PIXEL_H
20
21 #if defined(__cplusplus) || defined(c_plusplus)
22 extern "C" {
23 #endif
24
25 #include <MagickCore/colorspace.h>
26 #include <MagickCore/constitute.h>
27
28 typedef enum
29 {
30   UndefinedInterpolatePixel,
31   AverageInterpolatePixel,
32   BicubicInterpolatePixel,
33   BilinearInterpolatePixel,
34   FilterInterpolatePixel,
35   IntegerInterpolatePixel,
36   MeshInterpolatePixel,
37   NearestNeighborInterpolatePixel,
38   SplineInterpolatePixel
39 } InterpolatePixelMethod;
40
41 typedef enum
42 {
43   RedPixelComponent = 0,
44   CyanPixelComponent = 0,
45   GrayPixelComponent = 0,
46   YPixelComponent = 0,
47   GreenPixelComponent = 1,
48   MagentaPixelComponent = 1,
49   CbPixelComponent = 1,
50   BluePixelComponent = 2,
51   YellowPixelComponent = 2,
52   CrPixelComponent = 2,
53   AlphaPixelComponent = 3,
54   BlackPixelComponent = 4,
55   IndexPixelComponent = 4,
56   MaskPixelComponent = 5
57 } PixelComponent;
58
59 typedef enum
60 {
61   UndefinedPixelTrait = 0x000000,
62   ActivePixelTrait = 0x000001,
63   BlendPixelTrait = 0x000002
64 } PixelTrait;
65
66 typedef struct _PixelComponentMap
67 {
68   PixelComponent
69     component;
70
71   PixelTrait
72     traits;
73 } PixelComponentMap;
74
75 typedef struct _DoublePixelPacket
76 {
77   double
78     red,
79     green,
80     blue,
81     alpha,
82     black;
83 } DoublePixelPacket;
84
85 typedef struct _LongPixelPacket
86 {
87   unsigned int
88     red,
89     green,
90     blue,
91     alpha,
92     black;
93 } LongPixelPacket;
94
95 typedef struct _PixelInfo
96 {
97   ClassType
98     storage_class;
99
100   ColorspaceType
101     colorspace;
102
103   MagickBooleanType
104     matte;
105
106   double
107     fuzz;
108
109   size_t
110     depth;
111
112   MagickRealType
113     red,
114     green,
115     blue,
116     alpha,
117     black,
118     index;
119 } PixelInfo;
120
121 typedef struct _PixelPacket
122 {
123   Quantum
124     red,
125     green,
126     blue,
127     alpha,
128     black,
129     index;
130
131  MagickSizeType
132     count;
133 } PixelPacket;
134
135 typedef struct _CacheView
136   CacheView_;
137
138 extern MagickExport MagickBooleanType
139   ExportImagePixels(const Image *,const ssize_t,const ssize_t,const size_t,
140     const size_t,const char *,const StorageType,void *,ExceptionInfo *),
141   ImportImagePixels(Image *,const ssize_t,const ssize_t,const size_t,
142     const size_t,const char *,const StorageType,const void *),
143   InterpolatePixelInfo(const Image *,const CacheView_ *,
144     const InterpolatePixelMethod,const double,const double,PixelInfo *,
145     ExceptionInfo *),
146   IsFuzzyEquivalencePixel(const Image *,const Quantum *,
147     const Quantum *),
148   IsFuzzyEquivalencePixelInfo(const PixelInfo *,const PixelInfo *),
149   IsFuzzyEquivalencePixelPacket(const Image *,const PixelPacket *,
150     const PixelPacket *);
151
152 extern MagickExport PixelComponentMap
153   *AcquirePixelComponentMap(void),
154   *ClonePixelComponentMap(const PixelComponentMap *),
155   *DestroyPixelComponentMap(PixelComponentMap *);
156
157 extern MagickExport PixelInfo
158   *ClonePixelInfo(const PixelInfo *);
159
160 extern MagickExport void
161   StandardPixelComponentMap(Image *),
162   GetPixelInfo(const Image *,PixelInfo *),
163   SetPixelComponentMap(Image *,const ChannelType);
164
165 #if defined(__cplusplus) || defined(c_plusplus)
166 }
167 #endif
168
169 #endif