]> granicus.if.org Git - imagemagick/blob - magick/option.h
(no commit message)
[imagemagick] / magick / option.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 option methods.
17 */
18 #ifndef _MAGICKCORE_OPTION_H
19 #define _MAGICKCORE_OPTION_H
20
21 #if defined(__cplusplus) || defined(c_plusplus)
22 extern "C" {
23 #endif
24
25 typedef enum
26 {
27   MagickUndefinedOptions = -1,
28   MagickAlignOptions = 0,
29   MagickAlphaOptions,
30   MagickBooleanOptions,
31   MagickChannelOptions,
32   MagickClassOptions,
33   MagickClipPathOptions,
34   MagickCoderOptions,
35   MagickColorOptions,
36   MagickColorspaceOptions,
37   MagickCommandOptions,
38   MagickComposeOptions,
39   MagickCompressOptions,
40   MagickConfigureOptions,
41   MagickDataTypeOptions,
42   MagickDebugOptions,
43   MagickDecorateOptions,
44   MagickDelegateOptions,
45   MagickDirectionOptions,
46   MagickDisposeOptions,
47   MagickDistortOptions,
48   MagickDitherOptions,
49   MagickEndianOptions,
50   MagickEvaluateOptions,
51   MagickFillRuleOptions,
52   MagickFilterOptions,
53   MagickFontOptions,
54   MagickFontsOptions,
55   MagickFormatOptions,
56   MagickFunctionOptions,
57   MagickGravityOptions,
58   MagickIntentOptions,
59   MagickInterlaceOptions,
60   MagickInterpolateOptions,
61   MagickKernelOptions,
62   MagickLayerOptions,
63   MagickLineCapOptions,
64   MagickLineJoinOptions,
65   MagickListOptions,
66   MagickLocaleOptions,
67   MagickLogEventOptions,
68   MagickLogOptions,
69   MagickMagicOptions,
70   MagickMethodOptions,
71   MagickMetricOptions,
72   MagickMimeOptions,
73   MagickModeOptions,
74   MagickModuleOptions,
75   MagickMorphologyOptions,
76   MagickNoiseOptions,
77   MagickOrientationOptions,
78   MagickPolicyOptions,
79   MagickPolicyDomainOptions,
80   MagickPolicyRightsOptions,
81   MagickPreviewOptions,
82   MagickPrimitiveOptions,
83   MagickQuantumFormatOptions,
84   MagickResolutionOptions,
85   MagickResourceOptions,
86   MagickSparseColorOptions,
87   MagickStatisticOptions,
88   MagickStorageOptions,
89   MagickStretchOptions,
90   MagickStyleOptions,
91   MagickThresholdOptions,
92   MagickTypeOptions,
93   MagickValidateOptions,
94   MagickVirtualPixelOptions
95 } CommandOption;
96
97 typedef enum
98 {
99   UndefinedValidate,
100   NoValidate = 0x00000,
101   CompareValidate = 0x00001,
102   CompositeValidate = 0x00002,
103   ConvertValidate = 0x00004,
104   FormatsInMemoryValidate = 0x00008,
105   FormatsOnDiskValidate = 0x00010,
106   IdentifyValidate = 0x00020,
107   ImportExportValidate = 0x00040,
108   MontageValidate = 0x00080,
109   StreamValidate = 0x00100,
110   AllValidate = 0x7fffffff
111 } ValidateType;
112
113 typedef struct _OptionInfo
114 {
115   const char
116     *mnemonic;
117
118   ssize_t
119     type,
120     flags;
121
122   MagickBooleanType
123     stealth;
124 } OptionInfo;
125
126 /*
127   Flags to describe classes of image processing options.
128 */
129 typedef enum
130 {
131   UndefinedOptionFlag       = 0x0000,
132   FireOptionFlag            = 0x0001,  /* Option sequence firing point */
133   ImageInfoOptionFlag       = 0x0002,  /* Sets ImageInfo, no image needed */
134   DrawInfoOptionFlag        = 0x0004,  /* Sets DrawInfo, no image needed */
135   QuantizeInfoOptionFlag    = 0x0008,  /* Sets QuantizeInfo, no image needed */
136   GlobalOptionFlag          = 0x0010,  /* Sets Global Option, no image needed */
137   SimpleOperatorOptionFlag  = 0x0100,  /* Simple Image processing operator */
138   ListOperatorOptionFlag    = 0x0200,  /* Multi-Image List processing operator */
139   SpecialOperatorOptionFlag = 0x0400,  /* Specially handled Operator Option */
140   NonConvertOptionFlag      = 0x4000,  /* Option not used by Convert */
141   DeprecateOptionFlag       = 0x8000   /* Deprecate option, give warning */
142 } CommandOptionFlags;
143
144 extern MagickExport char
145   **GetCommandOptions(const CommandOption),
146   *GetNextImageOption(const ImageInfo *),
147   *RemoveImageOption(ImageInfo *,const char *);
148
149 extern MagickExport const char
150   *CommandOptionToMnemonic(const CommandOption,const ssize_t),
151   *GetImageOption(const ImageInfo *,const char *);
152
153 extern MagickExport MagickBooleanType
154   CloneImageOptions(ImageInfo *,const ImageInfo *),
155   DefineImageOption(ImageInfo *,const char *),
156   DeleteImageOption(ImageInfo *,const char *),
157   IsCommandOption(const char *),
158   ListCommandOptions(FILE *,const CommandOption,ExceptionInfo *),
159   SetImageOption(ImageInfo *,const char *,const char *);
160
161 extern MagickExport ssize_t
162   GetCommandOptionFlags(const CommandOption,const MagickBooleanType,
163     const char *),
164   ParseChannelOption(const char *),
165   ParseCommandOption(const CommandOption,const MagickBooleanType,const char *);
166
167 extern MagickExport void
168   DestroyImageOptions(ImageInfo *),
169   ResetImageOptions(const ImageInfo *),
170   ResetImageOptionIterator(const ImageInfo *);
171
172 #if defined(__cplusplus) || defined(c_plusplus)
173 }
174 #endif
175
176 #endif