MagickCore  6.9.13-16
Convert, Edit, Or Compose Bitmap Images
option.h
1 /*
2  Copyright 1999 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  MagickPagesizeOptions
104 } CommandOption;
105 
106 typedef enum
107 {
108  UndefinedValidate,
109  NoValidate = 0x00000,
110  ColorspaceValidate = 0x00001,
111  CompareValidate = 0x00002,
112  CompositeValidate = 0x00004,
113  ConvertValidate = 0x00008,
114  FormatsDiskValidate = 0x00010,
115  FormatsMapValidate = 0x00020,
116  FormatsMemoryValidate = 0x00040,
117  IdentifyValidate = 0x00080,
118  ImportExportValidate = 0x00100,
119  MontageValidate = 0x00200,
120  StreamValidate = 0x00400,
121  AllValidate = 0x7fffffff
122 } ValidateType;
123 
124 typedef struct _OptionInfo
125 {
126  const char
127  *mnemonic;
128 
129  ssize_t
130  type,
131  flags;
132 
133  MagickBooleanType
134  stealth;
135 } OptionInfo;
136 
137 /*
138  Flags to describe classes of image processing options.
139 */
140 typedef enum
141 {
142  UndefinedOptionFlag = 0x0000,
143  FireOptionFlag = 0x0001, /* Option sequence firing point */
144  ImageInfoOptionFlag = 0x0002, /* Sets ImageInfo, no image needed */
145  DrawInfoOptionFlag = 0x0004, /* Sets DrawInfo, no image needed */
146  QuantizeInfoOptionFlag = 0x0008, /* Sets QuantizeInfo, no image needed */
147  GlobalOptionFlag = 0x0010, /* Sets Global Option, no image needed */
148  SimpleOperatorOptionFlag = 0x0100, /* Simple Image processing operator */
149  ListOperatorOptionFlag = 0x0200, /* Multi-Image List processing operator */
150  SpecialOperatorOptionFlag = 0x0400, /* Specially handled Operator Option */
151  GenesisOptionFlag = 0x0400, /* Genesis Command Wrapper Option */
152  NonConvertOptionFlag = 0x4000, /* Option not used by Convert */
153  DeprecateOptionFlag = 0x8000 /* Deprecate option, give warning */
154 } CommandOptionFlags;
155 
156 extern MagickExport char
157  **GetCommandOptions(const CommandOption),
158  *GetNextImageOption(const ImageInfo *),
159  *RemoveImageOption(ImageInfo *,const char *);
160 
161 extern MagickExport const char
162  *CommandOptionToMnemonic(const CommandOption,const ssize_t),
163  *GetImageOption(const ImageInfo *,const char *);
164 
165 extern MagickExport MagickBooleanType
166  CloneImageOptions(ImageInfo *,const ImageInfo *),
167  DefineImageOption(ImageInfo *,const char *),
168  DeleteImageOption(ImageInfo *,const char *),
169  IsCommandOption(const char *),
170  IsOptionMember(const char *,const char *),
171  ListCommandOptions(FILE *,const CommandOption,ExceptionInfo *),
172  SetImageOption(ImageInfo *,const char *,const char *);
173 
174 extern MagickExport ssize_t
175  GetCommandOptionFlags(const CommandOption,const MagickBooleanType,
176  const char *),
177  ParseChannelOption(const char *),
178  ParseCommandOption(const CommandOption,const MagickBooleanType,const char *);
179 
180 extern MagickExport void
181  DestroyImageOptions(ImageInfo *),
182  ResetImageOptions(const ImageInfo *),
183  ResetImageOptionIterator(const ImageInfo *);
184 
185 #if defined(__cplusplus) || defined(c_plusplus)
186 }
187 #endif
188 
189 #endif