]> granicus.if.org Git - imagemagick/blob - MagickCore/option.h
(no commit message)
[imagemagick] / MagickCore / option.h
1 /*
2   Copyright 1999-2012 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   MagickPixelChannelOptions,
79   MagickPixelTraitOptions,
80   MagickPolicyOptions,
81   MagickPolicyDomainOptions,
82   MagickPolicyRightsOptions,
83   MagickPreviewOptions,
84   MagickPrimitiveOptions,
85   MagickQuantumFormatOptions,
86   MagickResolutionOptions,
87   MagickResourceOptions,
88   MagickSparseColorOptions,
89   MagickStatisticOptions,
90   MagickStorageOptions,
91   MagickStretchOptions,
92   MagickStyleOptions,
93   MagickThresholdOptions,
94   MagickTypeOptions,
95   MagickValidateOptions,
96   MagickVirtualPixelOptions
97 } CommandOption;
98
99 typedef enum
100 {
101   UndefinedValidate,
102   NoValidate = 0x00000,
103   CompareValidate = 0x00001,
104   CompositeValidate = 0x00002,
105   ConvertValidate = 0x00004,
106   FormatsInMemoryValidate = 0x00008,
107   FormatsOnDiskValidate = 0x00010,
108   IdentifyValidate = 0x00020,
109   ImportExportValidate = 0x00040,
110   MontageValidate = 0x00080,
111   StreamValidate = 0x00100,
112   AllValidate = 0x7fffffff
113 } ValidateType;
114
115 typedef struct _OptionInfo
116 {
117   const char
118     *mnemonic;
119
120   ssize_t
121     type,
122     flags;
123
124   MagickBooleanType
125     stealth;
126 } OptionInfo;
127
128 /*
129   Flags to describe classes of image processing options.
130 */
131 typedef enum
132 {
133   UndefinedOptionFlag       = 0x0000,
134   FireOptionFlag            = 0x0001,  /* Option sequence firing point */
135   ImageInfoOptionFlag       = 0x0002,  /* Sets ImageInfo, no image needed */
136   DrawInfoOptionFlag        = 0x0004,  /* Sets DrawInfo, no image needed */
137   QuantizeInfoOptionFlag    = 0x0008,  /* Sets QuantizeInfo, no image needed */
138   GlobalOptionFlag          = 0x0010,  /* Sets Global Option, no image needed */
139   SimpleOperatorOptionFlag  = 0x0100,  /* Simple Image processing operator */
140   ListOperatorOptionFlag    = 0x0200,  /* Multi-Image processing operator */
141   SpecialOperatorOptionFlag = 0x0400,  /* Specially handled Operator Option */
142   GenesisOptionFlag         = 0x0400,  /* Genesis Command Wrapper Option  */
143   NonConvertOptionFlag      = 0x4000,  /* Option not used by Convert */
144   DeprecateOptionFlag       = 0x8000,  /* Deprecate option, give warning */
145
146   SettingInfoOption         = 0x001F   /* one of the setting options */
147 } CommandOptionFlags;
148
149 extern MagickExport char
150   **GetCommandOptions(const CommandOption),
151   *GetNextImageOption(const ImageInfo *),
152   *RemoveImageOption(ImageInfo *,const char *);
153
154 extern MagickExport const char
155   *CommandOptionToMnemonic(const CommandOption,const ssize_t),
156   *GetImageOption(const ImageInfo *,const char *);
157
158 extern MagickExport MagickBooleanType
159   CloneImageOptions(ImageInfo *,const ImageInfo *),
160   DefineImageOption(ImageInfo *,const char *),
161   DeleteImageOption(ImageInfo *,const char *),
162   IsCommandOption(const char *),
163   ListCommandOptions(FILE *,const CommandOption,ExceptionInfo *),
164   SetImageOption(ImageInfo *,const char *,const char *);
165
166 extern MagickExport ssize_t
167   GetCommandOptionFlags(const CommandOption,const MagickBooleanType,
168     const char *),
169   ParseChannelOption(const char *),
170   ParseCommandOption(const CommandOption,const MagickBooleanType,const char *);
171
172 extern MagickExport void
173   DestroyImageOptions(ImageInfo *),
174   ResetImageOptions(const ImageInfo *),
175   ResetImageOptionIterator(const ImageInfo *);
176
177 #if defined(__cplusplus) || defined(c_plusplus)
178 }
179 #endif
180
181 #endif