Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-03-13 09:14:27

0001 /*
0002   Copyright @ 2000 ImageMagick Studio LLC, a non-profit organization
0003   dedicated to making software imaging solutions freely available.
0004   
0005   You may not use this file except in compliance with the License.  You may
0006   obtain a copy of the License at
0007   
0008     https://imagemagick.org/script/license.php
0009   
0010   Unless required by applicable law or agreed to in writing, software
0011   distributed under the License is distributed on an "AS IS" BASIS,
0012   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0013   See the License for the specific language governing permissions and
0014   limitations under the License.
0015 
0016   MagickCore option methods.
0017 */
0018 #ifndef MAGICKCORE_OPTION_H
0019 #define MAGICKCORE_OPTION_H
0020 
0021 #if defined(__cplusplus) || defined(c_plusplus)
0022 extern "C" {
0023 #endif
0024 
0025 typedef enum
0026 {
0027   MagickUndefinedOptions = -1,
0028   MagickAlignOptions = 0,
0029   MagickAlphaChannelOptions,
0030   MagickBooleanOptions,
0031   MagickCacheOptions,
0032   MagickChannelOptions,
0033   MagickClassOptions,
0034   MagickClipPathOptions,
0035   MagickCoderOptions,
0036   MagickColorOptions,
0037   MagickColorspaceOptions,
0038   MagickCommandOptions,
0039   MagickComplexOptions,
0040   MagickComplianceOptions,
0041   MagickComposeOptions,
0042   MagickCompressOptions,
0043   MagickConfigureOptions,
0044   MagickDataTypeOptions,
0045   MagickDebugOptions,
0046   MagickDecorateOptions,
0047   MagickDelegateOptions,
0048   MagickDirectionOptions,
0049   MagickDisposeOptions,
0050   MagickDistortOptions,
0051   MagickDitherOptions,
0052   MagickEndianOptions,
0053   MagickEvaluateOptions,
0054   MagickFillRuleOptions,
0055   MagickFilterOptions,
0056   MagickFontOptions,
0057   MagickFontsOptions,
0058   MagickFormatOptions,
0059   MagickFunctionOptions,
0060   MagickGradientOptions,
0061   MagickGravityOptions,
0062   MagickIntensityOptions,
0063   MagickIntentOptions,
0064   MagickInterlaceOptions,
0065   MagickInterpolateOptions,
0066   MagickKernelOptions,
0067   MagickLayerOptions,
0068   MagickLineCapOptions,
0069   MagickLineJoinOptions,
0070   MagickListOptions,
0071   MagickLocaleOptions,
0072   MagickLogEventOptions,
0073   MagickLogOptions,
0074   MagickMagicOptions,
0075   MagickMethodOptions,
0076   MagickMetricOptions,
0077   MagickMimeOptions,
0078   MagickModeOptions,
0079   MagickModuleOptions,
0080   MagickMorphologyOptions,
0081   MagickNoiseOptions,
0082   MagickOrientationOptions,
0083   MagickPixelChannelOptions,
0084   MagickPixelIntensityOptions,
0085   MagickPixelMaskOptions,
0086   MagickPixelTraitOptions,
0087   MagickPolicyOptions,
0088   MagickPolicyDomainOptions,
0089   MagickPolicyRightsOptions,
0090   MagickPreviewOptions,
0091   MagickPrimitiveOptions,
0092   MagickQuantumFormatOptions,
0093   MagickResolutionOptions,
0094   MagickResourceOptions,
0095   MagickSparseColorOptions,
0096   MagickStatisticOptions,
0097   MagickStorageOptions,
0098   MagickStretchOptions,
0099   MagickStyleOptions,
0100   MagickThresholdOptions,
0101   MagickTypeOptions,
0102   MagickValidateOptions,
0103   MagickVirtualPixelOptions,
0104   MagickWeightOptions,
0105   MagickAutoThresholdOptions,
0106   MagickToolOptions,
0107   MagickCLIOptions,
0108   MagickIlluminantOptions,
0109   MagickWordBreakOptions,
0110   MagickPagesizeOptions
0111 } CommandOption;
0112 
0113 typedef enum
0114 {
0115   UndefinedValidate,
0116   NoValidate = 0x00000,
0117   ColorspaceValidate = 0x00001,
0118   CompareValidate = 0x00002,
0119   CompositeValidate = 0x00004,
0120   ConvertValidate = 0x00008,
0121   FormatsDiskValidate = 0x00010,
0122   FormatsMapValidate = 0x00020,
0123   FormatsMemoryValidate = 0x00040,
0124   IdentifyValidate = 0x00080,
0125   ImportExportValidate = 0x00100,
0126   MontageValidate = 0x00200,
0127   StreamValidate = 0x00400,
0128   MagickValidate = 0x00800,
0129   AllValidate = 0x7fffffff
0130 } ValidateType;
0131 
0132 /*
0133   Flags to describe classes of image processing options.
0134   These are used to determine how a option should be processed, and
0135   avoid attempting to process all options in every way possible.
0136 */
0137 typedef enum
0138 {
0139   UndefinedOptionFlag       = 0x0000,  /* option flag is not in use */
0140 
0141   ImageInfoOptionFlag       = 0x0001,  /* Setting stored in ImageInfo */
0142   DrawInfoOptionFlag        = 0x0002,  /* Setting stored in DrawInfo */
0143   QuantizeInfoOptionFlag    = 0x0004,  /* Setting stored in QuantizeInfo */
0144   GlobalOptionFlag          = 0x0008,  /* Global Setting or Control */
0145   SettingOptionFlags        = 0x000F,  /* mask any setting option */
0146 
0147   NoImageOperatorFlag       = 0x0010,  /* Images not required operator */
0148   SimpleOperatorFlag        = 0x0020,  /* Simple Image processing operator */
0149   ListOperatorFlag          = 0x0040,  /* Multi-Image processing operator */
0150   GenesisOptionFlag         = 0x0080,  /* MagickCommandGenesis() Only Option */
0151 
0152   SpecialOptionFlag         = 0x0100,  /* Operator with Special Requirements */
0153                                        /* EG: for specific CLI commands */
0154 
0155   AlwaysInterpretArgsFlag   = 0x0400,  /* Always Interpret escapes in Args */
0156                                        /* CF: "convert" compatibility mode */
0157   NeverInterpretArgsFlag    = 0x0800,  /* Never Interpret escapes in Args */
0158                                        /* EG: filename, or delayed escapes */
0159 
0160   NonMagickOptionFlag       = 0x1000,  /* Option not used by Magick Command */
0161   FireOptionFlag            = 0x2000,  /* Convert operation seq firing point */
0162   DeprecateOptionFlag       = 0x4000,  /* Deprecate option (no code) */
0163   ReplacedOptionFlag        = 0x8800   /* Replaced Option (but still works) */
0164 
0165 } CommandOptionFlags;
0166 
0167 typedef struct _OptionInfo
0168 {
0169   const char
0170     *mnemonic;
0171 
0172   ssize_t
0173     type,
0174     flags;
0175 
0176   MagickBooleanType
0177     stealth;
0178 } OptionInfo;
0179 
0180 
0181 extern MagickExport char
0182   **GetCommandOptions(const CommandOption),
0183   *GetNextImageOption(const ImageInfo *),
0184   *RemoveImageOption(ImageInfo *,const char *);
0185 
0186 extern MagickExport const char
0187   *CommandOptionToMnemonic(const CommandOption,const ssize_t),
0188   *GetImageOption(const ImageInfo *,const char *);
0189 
0190 extern MagickExport MagickBooleanType
0191   CloneImageOptions(ImageInfo *,const ImageInfo *),
0192   DefineImageOption(ImageInfo *,const char *),
0193   DeleteImageOption(ImageInfo *,const char *),
0194   IsCommandOption(const char *),
0195   IsOptionMember(const char *,const char *),
0196   ListCommandOptions(FILE *,const CommandOption,ExceptionInfo *),
0197   SetImageOption(ImageInfo *,const char *,const char *);
0198 
0199 extern MagickExport ssize_t
0200   GetCommandOptionFlags(const CommandOption,const MagickBooleanType,
0201     const char *),
0202   ParseChannelOption(const char *),
0203   ParsePixelChannelOption(const char *),
0204   ParseCommandOption(const CommandOption,const MagickBooleanType,const char *);
0205 
0206 extern MagickExport void
0207   DestroyImageOptions(ImageInfo *),
0208   ResetImageOptions(const ImageInfo *),
0209   ResetImageOptionIterator(const ImageInfo *);
0210 
0211 extern MagickExport const OptionInfo
0212   *GetCommandOptionInfo(const char *value);
0213 
0214 #if defined(__cplusplus) || defined(c_plusplus)
0215 }
0216 #endif
0217 
0218 #endif