]> granicus.if.org Git - imagemagick/blob - MagickCore/option.h
(no commit message)
[imagemagick] / MagickCore / 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   GenesisOptionFlag         = 0x0400,  /* Genesis Command Wrapper Option  */
141   NonConvertOptionFlag      = 0x4000,  /* Option not used by Convert */
142   DeprecateOptionFlag       = 0x8000   /* Deprecate option, give warning */
143 } CommandOptionFlags;
144
145 extern MagickExport char
146   **GetCommandOptions(const CommandOption),
147   *GetNextImageOption(const ImageInfo *),
148   *RemoveImageOption(ImageInfo *,const char *);
149
150 extern MagickExport const char
151   *CommandOptionToMnemonic(const CommandOption,const ssize_t),
152   *GetImageOption(const ImageInfo *,const char *);
153
154 extern MagickExport MagickBooleanType
155   CloneImageOptions(ImageInfo *,const ImageInfo *),
156   DefineImageOption(ImageInfo *,const char *),
157   DeleteImageOption(ImageInfo *,const char *),
158   IsCommandOption(const char *),
159   ListCommandOptions(FILE *,const CommandOption,ExceptionInfo *),
160   SetImageOption(ImageInfo *,const char *,const char *);
161
162 extern MagickExport ssize_t
163   GetCommandOptionFlags(const CommandOption,const MagickBooleanType,
164     const char *),
165   ParseChannelOption(const char *),
166   ParseCommandOption(const CommandOption,const MagickBooleanType,const char *);
167
168 extern MagickExport void
169   DestroyImageOptions(ImageInfo *),
170   ResetImageOptions(const ImageInfo *),
171   ResetImageOptionIterator(const ImageInfo *);
172
173 #if defined(__cplusplus) || defined(c_plusplus)
174 }
175 #endif
176
177 #endif