2 Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
3 dedicated to making software imaging solutions freely available.
5 You may not use this file except in compliance with the License. You may
6 obtain a copy of the License at
8 https://imagemagick.org/script/license.php
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.
16 MagickCore option methods.
18 #ifndef MAGICKCORE_OPTION_H
19 #define MAGICKCORE_OPTION_H
21 #if defined(__cplusplus) || defined(c_plusplus)
27 MagickUndefinedOptions = -1,
28 MagickAlignOptions = 0,
29 MagickAlphaChannelOptions,
34 MagickClipPathOptions,
37 MagickColorspaceOptions,
40 MagickComplianceOptions,
42 MagickCompressOptions,
43 MagickConfigureOptions,
44 MagickDataTypeOptions,
46 MagickDecorateOptions,
47 MagickDelegateOptions,
48 MagickDirectionOptions,
53 MagickEvaluateOptions,
54 MagickFillRuleOptions,
59 MagickFunctionOptions,
60 MagickGradientOptions,
62 MagickIntensityOptions,
64 MagickInterlaceOptions,
65 MagickInterpolateOptions,
69 MagickLineJoinOptions,
72 MagickLogEventOptions,
80 MagickMorphologyOptions,
82 MagickOrientationOptions,
83 MagickPixelChannelOptions,
84 MagickPixelIntensityOptions,
85 MagickPixelMaskOptions,
86 MagickPixelTraitOptions,
88 MagickPolicyDomainOptions,
89 MagickPolicyRightsOptions,
91 MagickPrimitiveOptions,
92 MagickQuantumFormatOptions,
93 MagickResolutionOptions,
94 MagickResourceOptions,
95 MagickSparseColorOptions,
96 MagickStatisticOptions,
100 MagickThresholdOptions,
102 MagickValidateOptions,
103 MagickVirtualPixelOptions,
105 MagickAutoThresholdOptions,
113 NoValidate = 0x00000,
114 ColorspaceValidate = 0x00001,
115 CompareValidate = 0x00002,
116 CompositeValidate = 0x00004,
117 ConvertValidate = 0x00008,
118 FormatsDiskValidate = 0x00010,
119 FormatsMapValidate = 0x00020,
120 FormatsMemoryValidate = 0x00040,
121 IdentifyValidate = 0x00080,
122 ImportExportValidate = 0x00100,
123 MontageValidate = 0x00200,
124 StreamValidate = 0x00400,
125 AllValidate = 0x7fffffff
129 Flags to describe classes of image processing options.
130 These are used to determine how a option should be processed, and
131 avoid attempting to process all options in every way posible.
135 UndefinedOptionFlag = 0x0000, /* option flag is not in use */
137 ImageInfoOptionFlag = 0x0001, /* Setting stored in ImageInfo */
138 DrawInfoOptionFlag = 0x0002, /* Setting stored in DrawInfo */
139 QuantizeInfoOptionFlag = 0x0004, /* Setting stored in QuantizeInfo */
140 GlobalOptionFlag = 0x0008, /* Global Setting or Control */
141 SettingOptionFlags = 0x000F, /* mask any setting option */
143 NoImageOperatorFlag = 0x0010, /* Images not required operator */
144 SimpleOperatorFlag = 0x0020, /* Simple Image processing operator */
145 ListOperatorFlag = 0x0040, /* Multi-Image processing operator */
146 GenesisOptionFlag = 0x0080, /* MagickCommandGenesis() Only Option */
148 SpecialOptionFlag = 0x0100, /* Operator with Special Requirements */
149 /* EG: for specific CLI commands */
151 AlwaysInterpretArgsFlag = 0x0400, /* Always Interpret escapes in Args */
152 /* CF: "convert" compatibility mode */
153 NeverInterpretArgsFlag = 0x0800, /* Never Interpret escapes in Args */
154 /* EG: filename, or delayed escapes */
156 NonMagickOptionFlag = 0x1000, /* Option not used by Magick Command */
157 FireOptionFlag = 0x2000, /* Convert operation seq firing point */
158 DeprecateOptionFlag = 0x4000, /* Deprecate option (no code) */
159 ReplacedOptionFlag = 0x8800 /* Replaced Option (but still works) */
161 } CommandOptionFlags;
163 typedef struct _OptionInfo
177 extern MagickExport char
178 **GetCommandOptions(const CommandOption),
179 *GetNextImageOption(const ImageInfo *),
180 *RemoveImageOption(ImageInfo *,const char *);
182 extern MagickExport const char
183 *CommandOptionToMnemonic(const CommandOption,const ssize_t),
184 *GetImageOption(const ImageInfo *,const char *);
186 extern MagickExport MagickBooleanType
187 CloneImageOptions(ImageInfo *,const ImageInfo *),
188 DefineImageOption(ImageInfo *,const char *),
189 DeleteImageOption(ImageInfo *,const char *),
190 IsCommandOption(const char *),
191 IsOptionMember(const char *,const char *),
192 ListCommandOptions(FILE *,const CommandOption,ExceptionInfo *),
193 SetImageOption(ImageInfo *,const char *,const char *);
195 extern MagickExport ssize_t
196 GetCommandOptionFlags(const CommandOption,const MagickBooleanType,
198 ParseChannelOption(const char *),
199 ParsePixelChannelOption(const char *),
200 ParseCommandOption(const CommandOption,const MagickBooleanType,const char *);
202 extern MagickExport void
203 DestroyImageOptions(ImageInfo *),
204 ResetImageOptions(const ImageInfo *),
205 ResetImageOptionIterator(const ImageInfo *);
207 extern MagickExport const OptionInfo
208 *GetCommandOptionInfo(const char *value);
210 #if defined(__cplusplus) || defined(c_plusplus)