MagickCore  7.1.0
Convert, Edit, Or Compose Bitmap Images
option.h
1 /*
2  Copyright @ 2000 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. You may
6  obtain a copy of the License at
7 
8  https://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  MagickAlphaChannelOptions,
30  MagickBooleanOptions,
31  MagickCacheOptions,
32  MagickChannelOptions,
33  MagickClassOptions,
34  MagickClipPathOptions,
35  MagickCoderOptions,
36  MagickColorOptions,
37  MagickColorspaceOptions,
38  MagickCommandOptions,
39  MagickComplexOptions,
40  MagickComplianceOptions,
41  MagickComposeOptions,
42  MagickCompressOptions,
43  MagickConfigureOptions,
44  MagickDataTypeOptions,
45  MagickDebugOptions,
46  MagickDecorateOptions,
47  MagickDelegateOptions,
48  MagickDirectionOptions,
49  MagickDisposeOptions,
50  MagickDistortOptions,
51  MagickDitherOptions,
52  MagickEndianOptions,
53  MagickEvaluateOptions,
54  MagickFillRuleOptions,
55  MagickFilterOptions,
56  MagickFontOptions,
57  MagickFontsOptions,
58  MagickFormatOptions,
59  MagickFunctionOptions,
60  MagickGradientOptions,
61  MagickGravityOptions,
62  MagickIntensityOptions,
63  MagickIntentOptions,
64  MagickInterlaceOptions,
65  MagickInterpolateOptions,
66  MagickKernelOptions,
67  MagickLayerOptions,
68  MagickLineCapOptions,
69  MagickLineJoinOptions,
70  MagickListOptions,
71  MagickLocaleOptions,
72  MagickLogEventOptions,
73  MagickLogOptions,
74  MagickMagicOptions,
75  MagickMethodOptions,
76  MagickMetricOptions,
77  MagickMimeOptions,
78  MagickModeOptions,
79  MagickModuleOptions,
80  MagickMorphologyOptions,
81  MagickNoiseOptions,
82  MagickOrientationOptions,
83  MagickPixelChannelOptions,
84  MagickPixelIntensityOptions,
85  MagickPixelMaskOptions,
86  MagickPixelTraitOptions,
87  MagickPolicyOptions,
88  MagickPolicyDomainOptions,
89  MagickPolicyRightsOptions,
90  MagickPreviewOptions,
91  MagickPrimitiveOptions,
92  MagickQuantumFormatOptions,
93  MagickResolutionOptions,
94  MagickResourceOptions,
95  MagickSparseColorOptions,
96  MagickStatisticOptions,
97  MagickStorageOptions,
98  MagickStretchOptions,
99  MagickStyleOptions,
100  MagickThresholdOptions,
101  MagickTypeOptions,
102  MagickValidateOptions,
103  MagickVirtualPixelOptions,
104  MagickWeightOptions,
105  MagickAutoThresholdOptions,
106  MagickToolOptions,
107  MagickCLIOptions,
108  MagickIlluminantOptions
109 } CommandOption;
110 
111 typedef enum
112 {
113  UndefinedValidate,
114  NoValidate = 0x00000,
115  ColorspaceValidate = 0x00001,
116  CompareValidate = 0x00002,
117  CompositeValidate = 0x00004,
118  ConvertValidate = 0x00008,
119  FormatsDiskValidate = 0x00010,
120  FormatsMapValidate = 0x00020,
121  FormatsMemoryValidate = 0x00040,
122  IdentifyValidate = 0x00080,
123  ImportExportValidate = 0x00100,
124  MontageValidate = 0x00200,
125  StreamValidate = 0x00400,
126  AllValidate = 0x7fffffff
127 } ValidateType;
128 
129 /*
130  Flags to describe classes of image processing options.
131  These are used to determine how a option should be processed, and
132  avoid attempting to process all options in every way posible.
133 */
134 typedef enum
135 {
136  UndefinedOptionFlag = 0x0000, /* option flag is not in use */
137 
138  ImageInfoOptionFlag = 0x0001, /* Setting stored in ImageInfo */
139  DrawInfoOptionFlag = 0x0002, /* Setting stored in DrawInfo */
140  QuantizeInfoOptionFlag = 0x0004, /* Setting stored in QuantizeInfo */
141  GlobalOptionFlag = 0x0008, /* Global Setting or Control */
142  SettingOptionFlags = 0x000F, /* mask any setting option */
143 
144  NoImageOperatorFlag = 0x0010, /* Images not required operator */
145  SimpleOperatorFlag = 0x0020, /* Simple Image processing operator */
146  ListOperatorFlag = 0x0040, /* Multi-Image processing operator */
147  GenesisOptionFlag = 0x0080, /* MagickCommandGenesis() Only Option */
148 
149  SpecialOptionFlag = 0x0100, /* Operator with Special Requirements */
150  /* EG: for specific CLI commands */
151 
152  AlwaysInterpretArgsFlag = 0x0400, /* Always Interpret escapes in Args */
153  /* CF: "convert" compatibility mode */
154  NeverInterpretArgsFlag = 0x0800, /* Never Interpret escapes in Args */
155  /* EG: filename, or delayed escapes */
156 
157  NonMagickOptionFlag = 0x1000, /* Option not used by Magick Command */
158  FireOptionFlag = 0x2000, /* Convert operation seq firing point */
159  DeprecateOptionFlag = 0x4000, /* Deprecate option (no code) */
160  ReplacedOptionFlag = 0x8800 /* Replaced Option (but still works) */
161 
162 } CommandOptionFlags;
163 
164 typedef struct _OptionInfo
165 {
166  const char
167  *mnemonic;
168 
169  ssize_t
170  type,
171  flags;
172 
173  MagickBooleanType
174  stealth;
175 } OptionInfo;
176 
177 
178 extern MagickExport char
179  **GetCommandOptions(const CommandOption),
180  *GetNextImageOption(const ImageInfo *),
181  *RemoveImageOption(ImageInfo *,const char *);
182 
183 extern MagickExport const char
184  *CommandOptionToMnemonic(const CommandOption,const ssize_t),
185  *GetImageOption(const ImageInfo *,const char *);
186 
187 extern MagickExport MagickBooleanType
188  CloneImageOptions(ImageInfo *,const ImageInfo *),
189  DefineImageOption(ImageInfo *,const char *),
190  DeleteImageOption(ImageInfo *,const char *),
191  IsCommandOption(const char *),
192  IsOptionMember(const char *,const char *),
193  ListCommandOptions(FILE *,const CommandOption,ExceptionInfo *),
194  SetImageOption(ImageInfo *,const char *,const char *);
195 
196 extern MagickExport ssize_t
197  GetCommandOptionFlags(const CommandOption,const MagickBooleanType,
198  const char *),
199  ParseChannelOption(const char *),
200  ParsePixelChannelOption(const char *),
201  ParseCommandOption(const CommandOption,const MagickBooleanType,const char *);
202 
203 extern MagickExport void
204  DestroyImageOptions(ImageInfo *),
205  ResetImageOptions(const ImageInfo *),
206  ResetImageOptionIterator(const ImageInfo *);
207 
208 extern MagickExport const OptionInfo
209  *GetCommandOptionInfo(const char *value);
210 
211 #if defined(__cplusplus) || defined(c_plusplus)
212 }
213 #endif
214 
215 #endif