]> 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,
62   AlphaPixelTrait,
63   IgnorePixelTrait,
64   UnusedPixelTrait
65 } PixelTrait;
66
67 typedef struct _PixelComponentMap
68 {
69   PixelComponent
70     component;
71
72   PixelTrait
73     trait;
74 } PixelComponentMap;
75
76 typedef struct _DoublePixelPacket
77 {
78   double
79     red,
80     green,
81     blue,
82     alpha,
83     black;
84 } DoublePixelPacket;
85
86 typedef struct _LongPixelPacket
87 {
88   unsigned int
89     red,
90     green,
91     blue,
92     alpha,
93     black;
94 } LongPixelPacket;
95
96 typedef struct _PixelInfo
97 {
98   ClassType
99     storage_class;
100
101   ColorspaceType
102     colorspace;
103
104   MagickBooleanType
105     matte;
106
107   double
108     fuzz;
109
110   size_t
111     depth;
112
113   MagickRealType
114     red,
115     green,
116     blue,
117     alpha,
118     black,
119     index;
120 } PixelInfo;
121
122 typedef struct _PixelPacket
123 {
124   Quantum
125     red,
126     green,
127     blue,
128     alpha,
129     black,
130     index;
131
132  MagickSizeType
133     count;
134 } PixelPacket;
135
136 typedef struct _CacheView
137   CacheView_;
138
139 extern MagickExport MagickBooleanType
140   ExportImagePixels(const Image *,const ssize_t,const ssize_t,const size_t,
141     const size_t,const char *,const StorageType,void *,ExceptionInfo *),
142   ImportImagePixels(Image *,const ssize_t,const ssize_t,const size_t,
143     const size_t,const char *,const StorageType,const void *),
144   InterpolatePixelInfo(const Image *,const CacheView_ *,
145     const InterpolatePixelMethod,const double,const double,PixelInfo *,
146     ExceptionInfo *),
147   IsFuzzyEquivalencePixel(const Image *,const Quantum *,
148     const Quantum *),
149   IsFuzzyEquivalencePixelInfo(const PixelInfo *,const PixelInfo *),
150   IsFuzzyEquivalencePixelPacket(const Image *,const PixelPacket *,
151     const PixelPacket *);
152
153 extern MagickExport PixelComponentMap
154   *AcquirePixelComponentMap(void),
155   *ClonePixelComponentMap(const PixelComponentMap *),
156   *DestroyPixelComponentMap(PixelComponentMap *);
157
158 extern MagickExport PixelInfo
159   *ClonePixelInfo(const PixelInfo *);
160
161 extern MagickExport void
162   DefinePixelComponentMap(Image *),
163   GetPixelInfo(const Image *,PixelInfo *);
164
165 #if defined(__cplusplus) || defined(c_plusplus)
166 }
167 #endif
168
169 #endif