MagickCore  6.9.12-67
Convert, Edit, Or Compose Bitmap Images
 All Data Structures
option.h
1 /*
2  Copyright 1999-2021 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  MagickAlphaOptions,
30  MagickBooleanOptions,
31  MagickCacheOptions,
32  MagickChannelOptions,
33  MagickClassOptions,
34  MagickClipPathOptions,
35  MagickCoderOptions,
36  MagickColorOptions,
37  MagickColorspaceOptions,
38  MagickCommandOptions,
39  MagickComposeOptions,
40  MagickCompressOptions,
41  MagickConfigureOptions,
42  MagickDataTypeOptions,
43  MagickDebugOptions,
44  MagickDecorateOptions,
45  MagickDelegateOptions,
46  MagickDirectionOptions,
47  MagickDisposeOptions,
48  MagickDistortOptions,
49  MagickDitherOptions,
50  MagickEndianOptions,
51  MagickEvaluateOptions,
52  MagickFillRuleOptions,
53  MagickFilterOptions,
54  MagickFontOptions,
55  MagickFontsOptions,
56  MagickFormatOptions,
57  MagickFunctionOptions,
58  MagickGravityOptions,
59  MagickIntentOptions,
60  MagickInterlaceOptions,
61  MagickInterpolateOptions,
62  MagickKernelOptions,
63  MagickLayerOptions,
64  MagickLineCapOptions,
65  MagickLineJoinOptions,
66  MagickListOptions,
67  MagickLocaleOptions,
68  MagickLogEventOptions,
69  MagickLogOptions,
70  MagickMagicOptions,
71  MagickMethodOptions,
72  MagickMetricOptions,
73  MagickMimeOptions,
74  MagickModeOptions,
75  MagickModuleOptions,
76  MagickMorphologyOptions,
77  MagickNoiseOptions,
78  MagickOrientationOptions,
79  MagickPixelIntensityOptions,
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  MagickComplexOptions,
98  MagickIntensityOptions,
99  MagickGradientOptions,
100  MagickWeightOptions,
101  MagickComplianceOptions,
102  MagickAutoThresholdOptions
103 } CommandOption;
104 
105 typedef enum
106 {
107  UndefinedValidate,
108  NoValidate = 0x00000,
109  ColorspaceValidate = 0x00001,
110  CompareValidate = 0x00002,
111  CompositeValidate = 0x00004,
112  ConvertValidate = 0x00008,
113  FormatsDiskValidate = 0x00010,
114  FormatsMapValidate = 0x00020,
115  FormatsMemoryValidate = 0x00040,
116  IdentifyValidate = 0x00080,
117  ImportExportValidate = 0x00100,
118  MontageValidate = 0x00200,
119  StreamValidate = 0x00400,
120  AllValidate = 0x7fffffff
121 } ValidateType;
122 
123 typedef struct _OptionInfo
124 {
125  const char
126  *mnemonic;
127 
128  ssize_t
129  type,
130  flags;
131 
132  MagickBooleanType
133  stealth;
134 } OptionInfo;
135 
136 /*
137  Flags to describe classes of image processing options.
138 */
139 typedef enum
140 {
141  UndefinedOptionFlag = 0x0000,
142  FireOptionFlag = 0x0001, /* Option sequence firing point */
143  ImageInfoOptionFlag = 0x0002, /* Sets ImageInfo, no image needed */
144  DrawInfoOptionFlag = 0x0004, /* Sets DrawInfo, no image needed */
145  QuantizeInfoOptionFlag = 0x0008, /* Sets QuantizeInfo, no image needed */
146  GlobalOptionFlag = 0x0010, /* Sets Global Option, no image needed */
147  SimpleOperatorOptionFlag = 0x0100, /* Simple Image processing operator */
148  ListOperatorOptionFlag = 0x0200, /* Multi-Image List processing operator */
149  SpecialOperatorOptionFlag = 0x0400, /* Specially handled Operator Option */
150  GenesisOptionFlag = 0x0400, /* Genesis Command Wrapper Option */
151  NonConvertOptionFlag = 0x4000, /* Option not used by Convert */
152  DeprecateOptionFlag = 0x8000 /* Deprecate option, give warning */
153 } CommandOptionFlags;
154 
155 extern MagickExport char
156  **GetCommandOptions(const CommandOption),
157  *GetNextImageOption(const ImageInfo *),
158  *RemoveImageOption(ImageInfo *,const char *);
159 
160 extern MagickExport const char
161  *CommandOptionToMnemonic(const CommandOption,const ssize_t),
162  *GetImageOption(const ImageInfo *,const char *);
163 
164 extern MagickExport MagickBooleanType
165  CloneImageOptions(ImageInfo *,const ImageInfo *),
166  DefineImageOption(ImageInfo *,const char *),
167  DeleteImageOption(ImageInfo *,const char *),
168  IsCommandOption(const char *),
169  IsOptionMember(const char *,const char *),
170  ListCommandOptions(FILE *,const CommandOption,ExceptionInfo *),
171  SetImageOption(ImageInfo *,const char *,const char *);
172 
173 extern MagickExport ssize_t
174  GetCommandOptionFlags(const CommandOption,const MagickBooleanType,
175  const char *),
176  ParseChannelOption(const char *),
177  ParseCommandOption(const CommandOption,const MagickBooleanType,const char *);
178 
179 extern MagickExport void
180  DestroyImageOptions(ImageInfo *),
181  ResetImageOptions(const ImageInfo *),
182  ResetImageOptionIterator(const ImageInfo *);
183 
184 #if defined(__cplusplus) || defined(c_plusplus)
185 }
186 #endif
187 
188 #endif