1/*
2  Copyright 1999-2016 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 color methods.
17*/
18#ifndef MAGICKCORE_COLOR_H
19#define MAGICKCORE_COLOR_H
20
21#include "MagickCore/pixel.h"
22#include "MagickCore/exception.h"
23
24#if defined(__cplusplus) || defined(c_plusplus)
25extern "C" {
26#endif
27
28typedef enum
29{
30  UndefinedCompliance,
31  NoCompliance = 0x0000,
32  CSSCompliance = 0x0001,
33  SVGCompliance = 0x0001,
34  X11Compliance = 0x0002,
35  XPMCompliance = 0x0004,
36  AllCompliance = 0x7fffffff
37} ComplianceType;
38
39typedef struct _ColorInfo
40{
41  char
42    *path,
43    *name;
44
45  ComplianceType
46    compliance;
47
48  PixelInfo
49    color;
50
51  MagickBooleanType
52    exempt,
53    stealth;
54
55  size_t
56    signature;
57} ColorInfo;
58
59typedef struct _ErrorInfo
60{
61  double
62    mean_error_per_pixel,
63    normalized_mean_error,
64    normalized_maximum_error;
65} ErrorInfo;
66
67extern MagickExport char
68  **GetColorList(const char *,size_t *,ExceptionInfo *);
69
70extern MagickExport const ColorInfo
71  *GetColorInfo(const char *,ExceptionInfo *),
72  **GetColorInfoList(const char *,size_t *,ExceptionInfo *);
73
74extern MagickExport MagickBooleanType
75  IsEquivalentImage(const Image *,const Image *,ssize_t *x,ssize_t *y,
76    ExceptionInfo *),
77  ListColorInfo(FILE *,ExceptionInfo *),
78  QueryColorCompliance(const char *,const ComplianceType,PixelInfo *,
79    ExceptionInfo *),
80  QueryColorname(const Image *,const PixelInfo *,const ComplianceType,
81    char *,ExceptionInfo *);
82
83extern MagickExport void
84  ConcatenateColorComponent(const PixelInfo *,const PixelChannel,
85    const ComplianceType,char *),
86  GetColorTuple(const PixelInfo *,const MagickBooleanType,char *);
87
88#if defined(__cplusplus) || defined(c_plusplus)
89}
90#endif
91
92#endif
93