2 Copyright 1999-2018 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.
6 obtain a copy of the License at
8 https://www.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
111 NoValidate = 0x00000,
112 ColorspaceValidate = 0x00001,
113 CompareValidate = 0x00002,
114 CompositeValidate = 0x00004,
115 ConvertValidate = 0x00008,
116 FormatsDiskValidate = 0x00010,
117 FormatsMapValidate = 0x00020,
118 FormatsMemoryValidate = 0x00040,
119 IdentifyValidate = 0x00080,
120 ImportExportValidate = 0x00100,
121 MontageValidate = 0x00200,
122 StreamValidate = 0x00400,
123 AllValidate = 0x7fffffff
127 Flags to describe classes of image processing options.
128 These are used to determine how a option should be processed, and
129 avoid attempting to process all options in every way posible.
133 UndefinedOptionFlag = 0x0000, /* option flag is not in use */
135 ImageInfoOptionFlag = 0x0001, /* Setting stored in ImageInfo */
136 DrawInfoOptionFlag = 0x0002, /* Setting stored in DrawInfo */
137 QuantizeInfoOptionFlag = 0x0004, /* Setting stored in QuantizeInfo */
138 GlobalOptionFlag = 0x0008, /* Global Setting or Control */
139 SettingOptionFlags = 0x000F, /* mask any setting option */
141 NoImageOperatorFlag = 0x0010, /* Images not required operator */
142 SimpleOperatorFlag = 0x0020, /* Simple Image processing operator */
143 ListOperatorFlag = 0x0040, /* Multi-Image processing operator */
144 GenesisOptionFlag = 0x0080, /* MagickCommandGenesis() Only Option */
146 SpecialOptionFlag = 0x0100, /* Operator with Special Requirements */
147 /* EG: for specific CLI commands */
149 AlwaysInterpretArgsFlag = 0x0400, /* Always Interpret escapes in Args */
150 /* CF: "convert" compatibility mode */
151 NeverInterpretArgsFlag = 0x0800, /* Never Interpret escapes in Args */
152 /* EG: filename, or delayed escapes */
154 NonMagickOptionFlag = 0x1000, /* Option not used by Magick Command */
155 FireOptionFlag = 0x2000, /* Convert operation seq firing point */
156 DeprecateOptionFlag = 0x4000, /* Deprecate option (no code) */
157 ReplacedOptionFlag = 0x8800 /* Replaced Option (but still works) */
159 } CommandOptionFlags;
161 typedef struct _OptionInfo
175 extern MagickExport char
176 **GetCommandOptions(const CommandOption),
177 *GetNextImageOption(const ImageInfo *),
178 *RemoveImageOption(ImageInfo *,const char *);
180 extern MagickExport const char
181 *CommandOptionToMnemonic(const CommandOption,const ssize_t),
182 *GetImageOption(const ImageInfo *,const char *);
184 extern MagickExport MagickBooleanType
185 CloneImageOptions(ImageInfo *,const ImageInfo *),
186 DefineImageOption(ImageInfo *,const char *),
187 DeleteImageOption(ImageInfo *,const char *),
188 IsCommandOption(const char *),
189 IsOptionMember(const char *,const char *),
190 ListCommandOptions(FILE *,const CommandOption,ExceptionInfo *),
191 SetImageOption(ImageInfo *,const char *,const char *);
193 extern MagickExport ssize_t
194 GetCommandOptionFlags(const CommandOption,const MagickBooleanType,
196 ParseChannelOption(const char *),
197 ParsePixelChannelOption(const char *),
198 ParseCommandOption(const CommandOption,const MagickBooleanType,const char *);
200 extern MagickExport void
201 DestroyImageOptions(ImageInfo *),
202 ResetImageOptions(const ImageInfo *),
203 ResetImageOptionIterator(const ImageInfo *);
205 extern MagickExport const OptionInfo
206 *GetCommandOptionInfo(const char *value);
208 #if defined(__cplusplus) || defined(c_plusplus)