00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043 #include "magick/studio.h"
00044 #include "magick/artifact.h"
00045 #include "magick/cache.h"
00046 #include "magick/color.h"
00047 #include "magick/compare.h"
00048 #include "magick/constitute.h"
00049 #include "magick/distort.h"
00050 #include "magick/draw.h"
00051 #include "magick/effect.h"
00052 #include "magick/exception.h"
00053 #include "magick/exception-private.h"
00054 #include "magick/fx.h"
00055 #include "magick/gem.h"
00056 #include "magick/geometry.h"
00057 #include "magick/image.h"
00058 #include "magick/image-private.h"
00059 #include "magick/layer.h"
00060 #include "magick/mime-private.h"
00061 #include "magick/memory_.h"
00062 #include "magick/monitor.h"
00063 #include "magick/montage.h"
00064 #include "magick/option.h"
00065 #include "magick/policy.h"
00066 #include "magick/property.h"
00067 #include "magick/quantize.h"
00068 #include "magick/quantum.h"
00069 #include "magick/resource_.h"
00070 #include "magick/splay-tree.h"
00071 #include "magick/string_.h"
00072 #include "magick/token.h"
00073 #include "magick/utility.h"
00074
00075
00076
00077
00078 static const OptionInfo
00079 AlignOptions[] =
00080 {
00081 { "Undefined", (long) UndefinedAlign, MagickTrue },
00082 { "Center", (long) CenterAlign, MagickFalse },
00083 { "End", (long) RightAlign, MagickFalse },
00084 { "Left", (long) LeftAlign, MagickFalse },
00085 { "Middle", (long) CenterAlign, MagickFalse },
00086 { "Right", (long) RightAlign, MagickFalse },
00087 { "Start", (long) LeftAlign, MagickFalse },
00088 { (char *) NULL, (long) UndefinedAlign, MagickFalse }
00089 },
00090 AlphaOptions[] =
00091 {
00092 { "Undefined", (long) UndefinedAlphaChannel, MagickTrue },
00093 { "Activate", (long) ActivateAlphaChannel, MagickFalse },
00094 { "Background", (long) BackgroundAlphaChannel, MagickFalse },
00095 { "Copy", (long) CopyAlphaChannel, MagickFalse },
00096 { "Deactivate", (long) DeactivateAlphaChannel, MagickFalse },
00097 { "Extract", (long) ExtractAlphaChannel, MagickFalse },
00098 { "Off", (long) DeactivateAlphaChannel, MagickFalse },
00099 { "On", (long) ActivateAlphaChannel, MagickFalse },
00100 { "Opaque", (long) OpaqueAlphaChannel, MagickFalse },
00101 { "Set", (long) SetAlphaChannel, MagickFalse },
00102 { "Shape", (long) ShapeAlphaChannel, MagickFalse },
00103 { "Reset", (long) SetAlphaChannel, MagickTrue },
00104 { "Transparent", (long) TransparentAlphaChannel, MagickFalse },
00105 { (char *) NULL, (long) UndefinedAlphaChannel, MagickFalse }
00106 },
00107 BooleanOptions[] =
00108 {
00109 { "False", 0L, MagickFalse },
00110 { "True", 1L, MagickFalse },
00111 { "0", 0L, MagickFalse },
00112 { "1", 1L, MagickFalse },
00113 { (char *) NULL, 0L, MagickFalse }
00114 },
00115 ChannelOptions[] =
00116 {
00117 { "Undefined", (long) UndefinedChannel, MagickTrue },
00118 { "All", (long) AllChannels, MagickFalse },
00119 { "Alpha", (long) OpacityChannel, MagickFalse },
00120 { "Black", (long) BlackChannel, MagickFalse },
00121 { "Blue", (long) BlueChannel, MagickFalse },
00122 { "Cyan", (long) CyanChannel, MagickFalse },
00123 { "Default", (long) DefaultChannels, MagickFalse },
00124 { "Gray", (long) GrayChannel, MagickFalse },
00125 { "Green", (long) GreenChannel, MagickFalse },
00126 { "Hue", (long) RedChannel, MagickFalse },
00127 { "Index", (long) IndexChannel, MagickFalse },
00128 { "Lightness", (long) BlueChannel, MagickFalse },
00129 { "Luminance", (long) BlueChannel, MagickFalse },
00130 { "Luminosity", (long) BlueChannel, MagickFalse },
00131 { "Magenta", (long) MagentaChannel, MagickFalse },
00132 { "Matte", (long) OpacityChannel, MagickFalse },
00133 { "Opacity", (long) OpacityChannel, MagickFalse },
00134 { "Red", (long) RedChannel, MagickFalse },
00135 { "Saturation", (long) GreenChannel, MagickFalse },
00136 { "Yellow", (long) YellowChannel, MagickFalse },
00137 { (char *) NULL, (long) UndefinedChannel, MagickFalse }
00138 },
00139 ClassOptions[] =
00140 {
00141 { "Undefined", (long) UndefinedClass, MagickTrue },
00142 { "DirectClass", (long) DirectClass, MagickFalse },
00143 { "PseudoClass", (long) PseudoClass, MagickFalse },
00144 { (char *) NULL, (long) UndefinedClass, MagickFalse }
00145 },
00146 ClipPathOptions[] =
00147 {
00148 { "Undefined", (long) UndefinedPathUnits, MagickTrue },
00149 { "ObjectBoundingBox", (long) ObjectBoundingBox, MagickFalse },
00150 { "UserSpace", (long) UserSpace, MagickFalse },
00151 { "UserSpaceOnUse", (long) UserSpaceOnUse, MagickFalse },
00152 { (char *) NULL, (long) UndefinedPathUnits, MagickFalse }
00153 },
00154 CommandOptions[] =
00155 {
00156 { "+adjoin", 0L, MagickFalse },
00157 { "-adjoin", 0L, MagickFalse },
00158 { "-adaptive-sharpen", 1L, MagickFalse },
00159 { "+adaptive-sharpen", 1L, MagickFalse },
00160 { "-adaptive-threshold", 1L, MagickFalse },
00161 { "+adaptive-threshold", 1L, MagickFalse },
00162 { "+affine", 0L, MagickFalse },
00163 { "-affine", 1L, MagickFalse },
00164 { "+affinity", 0L, MagickFalse },
00165 { "-affinity", 1L, MagickFalse },
00166 { "+alpha", 1L, MagickFalse },
00167 { "-alpha", 1L, MagickFalse },
00168 { "+annotate", 0L, MagickFalse },
00169 { "-annotate", 2L, MagickFalse },
00170 { "+antialias", 0L, MagickFalse },
00171 { "-antialias", 0L, MagickFalse },
00172 { "+append", 0L, MagickFalse },
00173 { "-append", 0L, MagickFalse },
00174 { "+authenticate", 0L, MagickFalse },
00175 { "-authenticate", 1L, MagickFalse },
00176 { "+auto-orient", 0L, MagickFalse },
00177 { "-auto-orient", 0L, MagickFalse },
00178 { "+average", 0L, MagickFalse },
00179 { "-average", 0L, MagickFalse },
00180 { "+backdrop", 0L, MagickFalse },
00181 { "-backdrop", 1L, MagickFalse },
00182 { "+background", 0L, MagickFalse },
00183 { "-background", 1L, MagickFalse },
00184 { "+bench", 0L, MagickTrue },
00185 { "-bench", 1L, MagickTrue },
00186 { "+bias", 0L, MagickFalse },
00187 { "-bias", 1L, MagickFalse },
00188 { "+black-threshold", 0L, MagickFalse },
00189 { "-black-threshold", 1L, MagickFalse },
00190 { "+blend", 0L, MagickFalse },
00191 { "-blend", 1L, MagickFalse },
00192 { "+blue-primary", 0L, MagickFalse },
00193 { "-blue-primary", 1L, MagickFalse },
00194 { "+blue-shift", 0L, MagickFalse },
00195 { "-blue-shift", 0L, MagickFalse },
00196 { "+blur", 0L, MagickFalse },
00197 { "-blur", 1L, MagickFalse },
00198 { "+border", 0L, MagickFalse },
00199 { "-border", 1L, MagickFalse },
00200 { "+bordercolor", 0L, MagickFalse },
00201 { "-bordercolor", 1L, MagickFalse },
00202 { "+borderwidth", 0L, MagickFalse },
00203 { "-borderwidth", 1L, MagickFalse },
00204 { "+box", 0L, MagickFalse },
00205 { "-box", 1L, MagickFalse },
00206 { "+cache", 0L, MagickFalse },
00207 { "-cache", 1L, MagickFalse },
00208 { "+channel", 0L, MagickFalse },
00209 { "-channel", 1L, MagickFalse },
00210 { "+charcoal", 0L, MagickFalse },
00211 { "-charcoal", 0L, MagickFalse },
00212 { "+chop", 0L, MagickFalse },
00213 { "-chop", 1L, MagickFalse },
00214 { "+clip", 0L, MagickFalse },
00215 { "-clip", 0L, MagickFalse },
00216 { "+clip-mask", 0L, MagickFalse },
00217 { "-clip-mask", 1L, MagickFalse },
00218 { "+clip-path", 0L, MagickFalse },
00219 { "-clip-path", 1L, MagickFalse },
00220 { "+clone", 0L, MagickFalse },
00221 { "-clone", 1L, MagickFalse },
00222 { "+clut", 0L, MagickFalse },
00223 { "-clut", 0L, MagickFalse },
00224 { "+coalesce", 0L, MagickFalse },
00225 { "-coalesce", 0L, MagickFalse },
00226 { "+colorize", 0L, MagickFalse },
00227 { "-colorize", 1L, MagickFalse },
00228 { "+colormap", 0L, MagickFalse },
00229 { "-colormap", 1L, MagickFalse },
00230 { "+colors", 0L, MagickFalse },
00231 { "-colors", 1L, MagickFalse },
00232 { "+colorspace", 0L, MagickFalse },
00233 { "-colorspace", 1L, MagickFalse },
00234 { "+combine", 0L, MagickFalse },
00235 { "-combine", 0L, MagickFalse },
00236 { "+comment", 0L, MagickFalse },
00237 { "-comment", 1L, MagickFalse },
00238 { "+compose", 0L, MagickFalse },
00239 { "-compose", 1L, MagickFalse },
00240 { "+composite", 0L, MagickFalse },
00241 { "-composite", 0L, MagickFalse },
00242 { "+compress", 0L, MagickFalse },
00243 { "-compress", 1L, MagickFalse },
00244 { "+contrast", 0L, MagickFalse },
00245 { "-contrast", 0L, MagickFalse },
00246 { "+contrast-stretch", 0L, MagickFalse },
00247 { "-contrast-stretch", 1L, MagickFalse },
00248 { "+convolve", 0L, MagickFalse },
00249 { "-convolve", 1L, MagickFalse },
00250 { "+crop", 0L, MagickFalse },
00251 { "-crop", 1L, MagickFalse },
00252 { "+cycle", 0L, MagickFalse },
00253 { "-cycle", 1L, MagickFalse },
00254 { "+debug", 0L, MagickFalse },
00255 { "-debug", 1L, MagickFalse },
00256 { "+decipher", 1L, MagickFalse },
00257 { "-decipher", 1L, MagickFalse },
00258 { "+deconstruct", 0L, MagickFalse },
00259 { "-deconstruct", 0L, MagickFalse },
00260 { "+define", 1L, MagickFalse },
00261 { "-define", 1L, MagickFalse },
00262 { "+delay", 0L, MagickFalse },
00263 { "-delay", 1L, MagickFalse },
00264 { "+delete", 0L, MagickFalse },
00265 { "-delete", 1L, MagickFalse },
00266 { "+density", 0L, MagickFalse },
00267 { "-density", 1L, MagickFalse },
00268 { "+depth", 0L, MagickFalse },
00269 { "-depth", 1L, MagickFalse },
00270 { "+descend", 0L, MagickFalse },
00271 { "-descend", 1L, MagickFalse },
00272 { "+deskew", 0L, MagickFalse },
00273 { "-deskew", 1L, MagickFalse },
00274 { "+despeckle", 0L, MagickFalse },
00275 { "-despeckle", 0L, MagickFalse },
00276 { "+displace", 0L, MagickFalse },
00277 { "-displace", 1L, MagickFalse },
00278 { "+display", 0L, MagickFalse },
00279 { "-display", 1L, MagickFalse },
00280 { "+dispose", 0L, MagickFalse },
00281 { "-dispose", 1L, MagickFalse },
00282 { "+dissolve", 0L, MagickFalse },
00283 { "-dissolve", 1L, MagickFalse },
00284 { "+distort", 2L, MagickFalse },
00285 { "-distort", 2L, MagickFalse },
00286 { "+dither", 0L, MagickFalse },
00287 { "-dither", 1L, MagickFalse },
00288 { "+draw", 0L, MagickFalse },
00289 { "-draw", 1L, MagickFalse },
00290 { "+edge", 0L, MagickFalse },
00291 { "-edge", 1L, MagickFalse },
00292 { "+emboss", 0L, MagickFalse },
00293 { "-emboss", 1L, MagickFalse },
00294 { "+encipher", 1L, MagickFalse },
00295 { "-encipher", 1L, MagickFalse },
00296 { "+encoding", 0L, MagickFalse },
00297 { "-encoding", 1L, MagickFalse },
00298 { "+endian", 0L, MagickFalse },
00299 { "-endian", 1L, MagickFalse },
00300 { "+enhance", 0L, MagickFalse },
00301 { "-enhance", 0L, MagickFalse },
00302 { "+equalize", 0L, MagickFalse },
00303 { "-equalize", 0L, MagickFalse },
00304 { "+evaluate", 0L, MagickFalse },
00305 { "-evaluate", 2L, MagickFalse },
00306 { "+extent", 0L, MagickFalse },
00307 { "-extent", 1L, MagickFalse },
00308 { "+extract", 0L, MagickFalse },
00309 { "-extract", 1L, MagickFalse },
00310 { "+family", 0L, MagickFalse },
00311 { "-family", 1L, MagickFalse },
00312 { "+fill", 0L, MagickFalse },
00313 { "-fill", 1L, MagickFalse },
00314 { "+filter", 0L, MagickFalse },
00315 { "-filter", 1L, MagickFalse },
00316 { "+flatten", 0L, MagickFalse },
00317 { "-flatten", 0L, MagickFalse },
00318 { "+flip", 0L, MagickFalse },
00319 { "-flip", 0L, MagickFalse },
00320 { "+floodfill", 0L, MagickFalse },
00321 { "-floodfill", 2L, MagickFalse },
00322 { "+flop", 0L, MagickFalse },
00323 { "-flop", 0L, MagickFalse },
00324 { "+font", 0L, MagickFalse },
00325 { "-font", 1L, MagickFalse },
00326 { "+foreground", 0L, MagickFalse },
00327 { "-foreground", 1L, MagickFalse },
00328 { "+format", 0L, MagickFalse },
00329 { "-format", 1L, MagickFalse },
00330 { "+frame", 0L, MagickFalse },
00331 { "-frame", 1L, MagickFalse },
00332 { "+fuzz", 0L, MagickFalse },
00333 { "-fuzz", 1L, MagickFalse },
00334 { "+fx", 0L, MagickFalse },
00335 { "-fx", 1L, MagickFalse },
00336 { "+gamma", 0L, MagickFalse },
00337 { "-gamma", 1L, MagickFalse },
00338 { "+gaussian", 0L, MagickFalse },
00339 { "-gaussian", 1L, MagickFalse },
00340 { "+gaussian-blur", 0L, MagickFalse },
00341 { "-gaussian-blur", 1L, MagickFalse },
00342 { "+geometry", 0L, MagickFalse },
00343 { "-geometry", 1L, MagickFalse },
00344 { "+gravity", 0L, MagickFalse },
00345 { "-gravity", 1L, MagickFalse },
00346 { "+green-primary", 0L, MagickFalse },
00347 { "-green-primary", 1L, MagickFalse },
00348 { "+hald-clut", 0L, MagickFalse },
00349 { "-hald-clut", 0L, MagickFalse },
00350 { "+help", 0L, MagickFalse },
00351 { "-help", 0L, MagickFalse },
00352 { "+highlight-color", 1L, MagickFalse },
00353 { "-highlight-color", 1L, MagickFalse },
00354 { "+iconGeometry", 0L, MagickFalse },
00355 { "-iconGeometry", 1L, MagickFalse },
00356 { "+iconic", 0L, MagickFalse },
00357 { "-iconic", 1L, MagickFalse },
00358 { "+identify", 0L, MagickFalse },
00359 { "-identify", 0L, MagickFalse },
00360 { "+immutable", 0L, MagickFalse },
00361 { "-immutable", 0L, MagickFalse },
00362 { "+implode", 0L, MagickFalse },
00363 { "-implode", 1L, MagickFalse },
00364 { "+insert", 0L, MagickFalse },
00365 { "-insert", 1L, MagickFalse },
00366 { "+intent", 0L, MagickFalse },
00367 { "-intent", 1L, MagickFalse },
00368 { "+interlace", 0L, MagickFalse },
00369 { "-interlace", 1L, MagickFalse },
00370 { "+interpolate", 0L, MagickFalse },
00371 { "-interpolate", 1L, MagickFalse },
00372 { "+interword-spacing", 0L, MagickFalse },
00373 { "-interword-spacing", 1L, MagickFalse },
00374 { "+kerning", 0L, MagickFalse },
00375 { "-kerning", 1L, MagickFalse },
00376 { "+label", 0L, MagickFalse },
00377 { "-label", 1L, MagickFalse },
00378 { "+lat", 0L, MagickFalse },
00379 { "-lat", 1L, MagickFalse },
00380 { "+layers", 0L, MagickFalse },
00381 { "-layers", 1L, MagickFalse },
00382 { "+level", 1L, MagickFalse },
00383 { "-level", 1L, MagickFalse },
00384 { "+level-colors", 1L, MagickFalse },
00385 { "-level-colors", 1L, MagickFalse },
00386 { "+limit", 0L, MagickFalse },
00387 { "-limit", 2L, MagickFalse },
00388 { "+linear-stretch", 0L, MagickFalse },
00389 { "-linear-stretch", 1L, MagickFalse },
00390 { "+linewidth", 0L, MagickFalse },
00391 { "-linewidth", 1L, MagickFalse },
00392 { "+liquid-rescale", 0L, MagickFalse },
00393 { "-liquid-rescale", 1L, MagickFalse },
00394 { "+list", 0L, MagickFalse },
00395 { "-list", 1L, MagickFalse },
00396 { "+log", 0L, MagickFalse },
00397 { "-log", 1L, MagickFalse },
00398 { "+loop", 0L, MagickFalse },
00399 { "-loop", 1L, MagickFalse },
00400 { "+lowlight-color", 1L, MagickFalse },
00401 { "-lowlight-color", 1L, MagickFalse },
00402 { "+magnify", 0L, MagickFalse },
00403 { "-magnify", 1L, MagickFalse },
00404 { "+map", 0L, MagickFalse },
00405 { "-map", 1L, MagickFalse },
00406 { "+mask", 0L, MagickFalse },
00407 { "-mask", 1L, MagickFalse },
00408 { "+matte", 0L, MagickFalse },
00409 { "-matte", 0L, MagickFalse },
00410 { "+mattecolor", 0L, MagickFalse },
00411 { "-mattecolor", 1L, MagickFalse },
00412 { "+median", 0L, MagickFalse },
00413 { "-median", 1L, MagickFalse },
00414 { "+metric", 0L, MagickFalse },
00415 { "-metric", 1L, MagickFalse },
00416 { "+mode", 0L, MagickFalse },
00417 { "-mode", 1L, MagickFalse },
00418 { "+modulate", 0L, MagickFalse },
00419 { "-modulate", 1L, MagickFalse },
00420 { "+monitor", 0L, MagickFalse },
00421 { "-monitor", 0L, MagickFalse },
00422 { "+monochrome", 0L, MagickFalse },
00423 { "-monochrome", 0L, MagickFalse },
00424 { "+morph", 0L, MagickFalse },
00425 { "-morph", 1L, MagickFalse },
00426 { "+mosaic", 0L, MagickFalse },
00427 { "-mosaic", 0L, MagickFalse },
00428 { "+motion-blur", 0L, MagickFalse },
00429 { "-motion-blur", 1L, MagickFalse },
00430 { "+name", 0L, MagickFalse },
00431 { "-name", 1L, MagickFalse },
00432 { "+negate", 0L, MagickFalse },
00433 { "-negate", 0L, MagickFalse },
00434 { "+noise", 1L, MagickFalse },
00435 { "-noise", 1L, MagickFalse },
00436 { "+noop", 0L, MagickFalse },
00437 { "-noop", 0L, MagickFalse },
00438 { "+normalize", 0L, MagickFalse },
00439 { "-normalize", 0L, MagickFalse },
00440 { "+opaque", 1L, MagickFalse },
00441 { "-opaque", 1L, MagickFalse },
00442 { "+ordered-dither", 0L, MagickFalse },
00443 { "-ordered-dither", 1L, MagickFalse },
00444 { "+orient", 0L, MagickFalse },
00445 { "-orient", 1L, MagickFalse },
00446 { "+origin", 0L, MagickFalse },
00447 { "-origin", 1L, MagickFalse },
00448 { "+page", 0L, MagickFalse },
00449 { "-page", 1L, MagickFalse },
00450 { "+paint", 0L, MagickFalse },
00451 { "-paint", 1L, MagickFalse },
00452 { "+path", 0L, MagickFalse },
00453 { "-path", 1L, MagickFalse },
00454 { "+pause", 0L, MagickFalse },
00455 { "-pause", 1L, MagickFalse },
00456 { "+passphrase", 0L, MagickFalse },
00457 { "-passphrase", 1L, MagickFalse },
00458 { "+pen", 0L, MagickFalse },
00459 { "-pen", 1L, MagickFalse },
00460 { "+ping", 0L, MagickFalse },
00461 { "-ping", 0L, MagickFalse },
00462 { "+pointsize", 0L, MagickFalse },
00463 { "-pointsize", 1L, MagickFalse },
00464 { "+polaroid", 0L, MagickFalse },
00465 { "-polaroid", 1L, MagickFalse },
00466 { "+posterize", 0L, MagickFalse },
00467 { "-posterize", 1L, MagickFalse },
00468 { "+preview", 0L, MagickFalse },
00469 { "-preview", 1L, MagickFalse },
00470 { "+process", 0L, MagickFalse },
00471 { "-process", 1L, MagickFalse },
00472 { "+profile", 1L, MagickFalse },
00473 { "-profile", 1L, MagickFalse },
00474 { "+quality", 0L, MagickFalse },
00475 { "-quality", 1L, MagickFalse },
00476 { "+quiet", 0L, MagickFalse },
00477 { "-quiet", 0L, MagickFalse },
00478 { "+radial-blur", 0L, MagickFalse },
00479 { "-radial-blur", 1L, MagickFalse },
00480 { "+raise", 0L, MagickFalse },
00481 { "-raise", 1L, MagickFalse },
00482 { "+random-threshold", 0L, MagickFalse },
00483 { "-random-threshold", 1L, MagickFalse },
00484 { "+recolor", 0L, MagickFalse },
00485 { "-recolor", 1L, MagickFalse },
00486 { "+red-primary", 0L, MagickFalse },
00487 { "-red-primary", 1L, MagickFalse },
00488 { "+regard-warnings", 0L, MagickFalse },
00489 { "-regard-warnings", 0L, MagickFalse },
00490 { "+region", 0L, MagickFalse },
00491 { "-region", 1L, MagickFalse },
00492 { "+remote", 0L, MagickFalse },
00493 { "-remote", 1L, MagickFalse },
00494 { "+render", 0L, MagickFalse },
00495 { "-render", 0L, MagickFalse },
00496 { "+repage", 0L, MagickFalse },
00497 { "-repage", 1L, MagickFalse },
00498 { "+resample", 0L, MagickFalse },
00499 { "-resample", 1L, MagickFalse },
00500 { "+resize", 0L, MagickFalse },
00501 { "-resize", 1L, MagickFalse },
00502 { "+respect-parenthesis", 0L, MagickFalse },
00503 { "-respect-parenthesis", 0L, MagickFalse },
00504 { "+reverse", 0L, MagickFalse },
00505 { "-reverse", 0L, MagickFalse },
00506 { "+roll", 0L, MagickFalse },
00507 { "-roll", 1L, MagickFalse },
00508 { "+rotate", 0L, MagickFalse },
00509 { "-rotate", 1L, MagickFalse },
00510 { "+sample", 0L, MagickFalse },
00511 { "-sample", 1L, MagickFalse },
00512 { "+sampling-factor", 0L, MagickFalse },
00513 { "-sampling-factor", 1L, MagickFalse },
00514 { "+sans", 0L, MagickFalse },
00515 { "-sans", 1L, MagickFalse },
00516 { "+sans0", 0L, MagickFalse },
00517 { "-sans0", 0L, MagickFalse },
00518 { "+sans2", 2L, MagickFalse },
00519 { "-sans2", 2L, MagickFalse },
00520 { "+scale", 0L, MagickFalse },
00521 { "-scale", 1L, MagickFalse },
00522 { "+scene", 0L, MagickFalse },
00523 { "-scene", 1L, MagickFalse },
00524 { "+scenes", 0L, MagickFalse },
00525 { "-scenes", 1L, MagickFalse },
00526 { "+screen", 0L, MagickFalse },
00527 { "-screen", 1L, MagickFalse },
00528 { "+seed", 0L, MagickFalse },
00529 { "-seed", 1L, MagickFalse },
00530 { "+segment", 0L, MagickFalse },
00531 { "-segment", 1L, MagickFalse },
00532 { "+separate", 0L, MagickFalse },
00533 { "-separate", 0L, MagickFalse },
00534 { "+sepia-tone", 0L, MagickFalse },
00535 { "-sepia-tone", 1L, MagickFalse },
00536 { "+set", 1L, MagickFalse },
00537 { "-set", 2L, MagickFalse },
00538 { "+shade", 0L, MagickFalse },
00539 { "-shade", 1L, MagickFalse },
00540 { "+shadow", 0L, MagickFalse },
00541 { "-shadow", 1L, MagickFalse },
00542 { "+shared-memory", 0L, MagickFalse },
00543 { "-shared-memory", 1L, MagickFalse },
00544 { "+sharpen", 0L, MagickFalse },
00545 { "-sharpen", 1L, MagickFalse },
00546 { "+shave", 0L, MagickFalse },
00547 { "-shave", 1L, MagickFalse },
00548 { "+shear", 0L, MagickFalse },
00549 { "-shear", 1L, MagickFalse },
00550 { "+sigmoidal-contrast", 0L, MagickFalse },
00551 { "-sigmoidal-contrast", 1L, MagickFalse },
00552 { "+silent", 0L, MagickFalse },
00553 { "-silent", 1L, MagickFalse },
00554 { "+size", 0L, MagickFalse },
00555 { "-size", 1L, MagickFalse },
00556 { "+sketch", 0L, MagickFalse },
00557 { "-sketch", 1L, MagickFalse },
00558 { "+snaps", 0L, MagickFalse },
00559 { "-snaps", 1L, MagickFalse },
00560 { "+solarize", 0L, MagickFalse },
00561 { "-solarize", 1L, MagickFalse },
00562 { "+splice", 0L, MagickFalse },
00563 { "-splice", 1L, MagickFalse },
00564 { "+sparse-color", 2L, MagickFalse },
00565 { "-sparse-color", 2L, MagickFalse },
00566 { "+spread", 0L, MagickFalse },
00567 { "-spread", 1L, MagickFalse },
00568 { "+stegano", 0L, MagickFalse },
00569 { "-stegano", 1L, MagickFalse },
00570 { "+stereo", 0L, MagickFalse },
00571 { "-stereo", 1L, MagickFalse },
00572 { "+stretch", 0L, MagickFalse },
00573 { "-stretch", 1L, MagickFalse },
00574 { "+strip", 0L, MagickFalse },
00575 { "-strip", 0L, MagickFalse },
00576 { "+stroke", 0L, MagickFalse },
00577 { "-stroke", 1L, MagickFalse },
00578 { "+strokewidth", 0L, MagickFalse },
00579 { "-strokewidth", 1L, MagickFalse },
00580 { "+style", 0L, MagickFalse },
00581 { "-style", 1L, MagickFalse },
00582 { "+swap", 0L, MagickFalse },
00583 { "-swap", 1L, MagickFalse },
00584 { "+swirl", 0L, MagickFalse },
00585 { "-swirl", 1L, MagickFalse },
00586 { "+text-font", 0L, MagickFalse },
00587 { "-text-font", 1L, MagickFalse },
00588 { "+texture", 0L, MagickFalse },
00589 { "-texture", 1L, MagickFalse },
00590 { "+threshold", 0L, MagickFalse },
00591 { "-threshold", 1L, MagickFalse },
00592 { "+thumbnail", 0L, MagickFalse },
00593 { "-thumbnail", 1L, MagickFalse },
00594 { "+thumnail", 0L, MagickFalse },
00595 { "-thumnail", 1L, MagickFalse },
00596 { "+tile", 0L, MagickFalse },
00597 { "-tile", 1L, MagickFalse },
00598 { "+tile-offset", 0L, MagickFalse },
00599 { "-tile-offset", 1L, MagickFalse },
00600 { "+tint", 0L, MagickFalse },
00601 { "-tint", 1L, MagickFalse },
00602 { "+title", 0L, MagickFalse },
00603 { "-title", 1L, MagickFalse },
00604 { "+transform", 0L, MagickFalse },
00605 { "-transform", 0L, MagickFalse },
00606 { "+transparent", 1L, MagickFalse },
00607 { "-transparent", 1L, MagickFalse },
00608 { "+transparent-color", 1L, MagickFalse },
00609 { "-transparent-color", 1L, MagickFalse },
00610 { "+transpose", 0L, MagickFalse },
00611 { "-transpose", 0L, MagickFalse },
00612 { "+transverse", 0L, MagickFalse },
00613 { "-transverse", 0L, MagickFalse },
00614 { "+treedepth", 0L, MagickFalse },
00615 { "-treedepth", 1L, MagickFalse },
00616 { "+trim", 0L, MagickFalse },
00617 { "-trim", 0L, MagickFalse },
00618 { "+type", 0L, MagickFalse },
00619 { "-type", 1L, MagickFalse },
00620 { "+undercolor", 0L, MagickFalse },
00621 { "-undercolor", 1L, MagickFalse },
00622 { "+unique-colors", 0L, MagickFalse },
00623 { "-unique-colors", 0L, MagickFalse },
00624 { "+units", 0L, MagickFalse },
00625 { "-units", 1L, MagickFalse },
00626 { "+unsharp", 0L, MagickFalse },
00627 { "-unsharp", 1L, MagickFalse },
00628 { "+update", 0L, MagickFalse },
00629 { "-update", 1L, MagickFalse },
00630 { "+use-pixmap", 0L, MagickFalse },
00631 { "-use-pixmap", 1L, MagickFalse },
00632 { "+verbose", 0L, MagickFalse },
00633 { "-verbose", 0L, MagickFalse },
00634 { "+version", 0L, MagickFalse },
00635 { "-version", 1L, MagickFalse },
00636 { "+view", 0L, MagickFalse },
00637 { "-view", 1L, MagickFalse },
00638 { "+vignette", 0L, MagickFalse },
00639 { "-vignette", 1L, MagickFalse },
00640 { "+virtual-pixel", 0L, MagickFalse },
00641 { "-virtual-pixel", 1L, MagickFalse },
00642 { "+visual", 0L, MagickFalse },
00643 { "-visual", 1L, MagickFalse },
00644 { "+watermark", 0L, MagickFalse },
00645 { "-watermark", 1L, MagickFalse },
00646 { "+wave", 0L, MagickFalse },
00647 { "-wave", 1L, MagickFalse },
00648 { "+weight", 0L, MagickFalse },
00649 { "-weight", 1L, MagickFalse },
00650 { "+white-point", 0L, MagickFalse },
00651 { "-white-point", 1L, MagickFalse },
00652 { "+white-threshold", 0L, MagickFalse },
00653 { "-white-threshold", 1L, MagickFalse },
00654 { "+window", 0L, MagickFalse },
00655 { "-window", 1L, MagickFalse },
00656 { "+window-group", 0L, MagickFalse },
00657 { "-window-group", 1L, MagickFalse },
00658 { "+write", 0L, MagickFalse },
00659 { "-write", 1L, MagickFalse },
00660 { (char *) NULL, (long) 0L, MagickFalse }
00661 },
00662 ComposeOptions[] =
00663 {
00664 { "Undefined", (long) UndefinedCompositeOp, MagickTrue },
00665 { "Add", (long) AddCompositeOp, MagickFalse },
00666 { "Atop", (long) AtopCompositeOp, MagickFalse },
00667 { "Blend", (long) BlendCompositeOp, MagickFalse },
00668 { "Blur", (long) BlurCompositeOp, MagickFalse },
00669 { "Bumpmap", (long) BumpmapCompositeOp, MagickFalse },
00670 { "ChangeMask", (long) ChangeMaskCompositeOp, MagickFalse },
00671 { "Clear", (long) ClearCompositeOp, MagickFalse },
00672 { "ColorBurn", (long) ColorBurnCompositeOp, MagickFalse },
00673 { "ColorDodge", (long) ColorDodgeCompositeOp, MagickFalse },
00674 { "Colorize", (long) ColorizeCompositeOp, MagickFalse },
00675 { "CopyBlack", (long) CopyBlackCompositeOp, MagickFalse },
00676 { "CopyBlue", (long) CopyBlueCompositeOp, MagickFalse },
00677 { "CopyCyan", (long) CopyCyanCompositeOp, MagickFalse },
00678 { "CopyGreen", (long) CopyGreenCompositeOp, MagickFalse },
00679 { "Copy", (long) CopyCompositeOp, MagickFalse },
00680 { "CopyMagenta", (long) CopyMagentaCompositeOp, MagickFalse },
00681 { "CopyOpacity", (long) CopyOpacityCompositeOp, MagickFalse },
00682 { "CopyRed", (long) CopyRedCompositeOp, MagickFalse },
00683 { "CopyYellow", (long) CopyYellowCompositeOp, MagickFalse },
00684 { "Darken", (long) DarkenCompositeOp, MagickFalse },
00685 { "Divide", (long) DivideCompositeOp, MagickFalse },
00686 { "Dst", (long) DstCompositeOp, MagickFalse },
00687 { "Difference", (long) DifferenceCompositeOp, MagickFalse },
00688 { "Displace", (long) DisplaceCompositeOp, MagickFalse },
00689 { "Dissolve", (long) DissolveCompositeOp, MagickFalse },
00690 { "Distort", (long) DistortCompositeOp, MagickFalse },
00691 { "DstAtop", (long) DstAtopCompositeOp, MagickFalse },
00692 { "DstIn", (long) DstInCompositeOp, MagickFalse },
00693 { "DstOut", (long) DstOutCompositeOp, MagickFalse },
00694 { "DstOver", (long) DstOverCompositeOp, MagickFalse },
00695 { "Dst", (long) DstCompositeOp, MagickFalse },
00696 { "Exclusion", (long) ExclusionCompositeOp, MagickFalse },
00697 { "HardLight", (long) HardLightCompositeOp, MagickFalse },
00698 { "Hue", (long) HueCompositeOp, MagickFalse },
00699 { "In", (long) InCompositeOp, MagickFalse },
00700 { "Lighten", (long) LightenCompositeOp, MagickFalse },
00701 { "LinearLight", (long) LinearLightCompositeOp, MagickFalse },
00702 { "Luminize", (long) LuminizeCompositeOp, MagickFalse },
00703 { "Minus", (long) MinusCompositeOp, MagickFalse },
00704 { "Modulate", (long) ModulateCompositeOp, MagickFalse },
00705 { "Multiply", (long) MultiplyCompositeOp, MagickFalse },
00706 { "None", (long) NoCompositeOp, MagickFalse },
00707 { "Out", (long) OutCompositeOp, MagickFalse },
00708 { "Overlay", (long) OverlayCompositeOp, MagickFalse },
00709 { "Over", (long) OverCompositeOp, MagickFalse },
00710 { "Plus", (long) PlusCompositeOp, MagickFalse },
00711 { "Replace", (long) ReplaceCompositeOp, MagickFalse },
00712 { "Saturate", (long) SaturateCompositeOp, MagickFalse },
00713 { "Screen", (long) ScreenCompositeOp, MagickFalse },
00714 { "SoftLight", (long) SoftLightCompositeOp, MagickFalse },
00715 { "Src", (long) SrcCompositeOp, MagickFalse },
00716 { "SrcAtop", (long) SrcAtopCompositeOp, MagickFalse },
00717 { "SrcIn", (long) SrcInCompositeOp, MagickFalse },
00718 { "SrcOut", (long) SrcOutCompositeOp, MagickFalse },
00719 { "SrcOver", (long) SrcOverCompositeOp, MagickFalse },
00720 { "Src", (long) SrcCompositeOp, MagickFalse },
00721 { "Subtract", (long) SubtractCompositeOp, MagickFalse },
00722 { "Threshold", (long) ThresholdCompositeOp, MagickTrue },
00723 { "Xor", (long) XorCompositeOp, MagickFalse },
00724 { (char *) NULL, (long) UndefinedCompositeOp, MagickFalse }
00725 },
00726 CompressOptions[] =
00727 {
00728 { "Undefined", (long) UndefinedCompression, MagickTrue },
00729 { "BZip", (long) BZipCompression, MagickFalse },
00730 { "DXT1", (long) DXT1Compression, MagickFalse },
00731 { "DXT3", (long) DXT3Compression, MagickFalse },
00732 { "DXT5", (long) DXT5Compression, MagickFalse },
00733 { "Fax", (long) FaxCompression, MagickFalse },
00734 { "Group4", (long) Group4Compression, MagickFalse },
00735 { "JPEG", (long) JPEGCompression, MagickFalse },
00736 { "JPEG2000", (long) JPEG2000Compression, MagickFalse },
00737 { "Lossless", (long) LosslessJPEGCompression, MagickFalse },
00738 { "LosslessJPEG", (long) LosslessJPEGCompression, MagickFalse },
00739 { "LZW", (long) LZWCompression, MagickFalse },
00740 { "None", (long) NoCompression, MagickFalse },
00741 { "RLE", (long) RLECompression, MagickFalse },
00742 { "Zip", (long) ZipCompression, MagickFalse },
00743 { "RunlengthEncoded", (long) RLECompression, MagickFalse },
00744 { (char *) NULL, (long) UndefinedCompression, MagickFalse }
00745 },
00746 ColorspaceOptions[] =
00747 {
00748 { "Undefined", (long) UndefinedColorspace, MagickTrue },
00749 { "CMY", (long) CMYColorspace, MagickFalse },
00750 { "CMYK", (long) CMYKColorspace, MagickFalse },
00751 { "Gray", (long) GRAYColorspace, MagickFalse },
00752 { "HSB", (long) HSBColorspace, MagickFalse },
00753 { "HSL", (long) HSLColorspace, MagickFalse },
00754 { "HWB", (long) HWBColorspace, MagickFalse },
00755 { "Lab", (long) LabColorspace, MagickFalse },
00756 { "Log", (long) LogColorspace, MagickFalse },
00757 { "OHTA", (long) OHTAColorspace, MagickFalse },
00758 { "Rec601Luma", (long) Rec601LumaColorspace, MagickFalse },
00759 { "Rec601YCbCr", (long) Rec601YCbCrColorspace, MagickFalse },
00760 { "Rec709Luma", (long) Rec709LumaColorspace, MagickFalse },
00761 { "Rec709YCbCr", (long) Rec709YCbCrColorspace, MagickFalse },
00762 { "RGB", (long) RGBColorspace, MagickFalse },
00763 { "sRGB", (long) sRGBColorspace, MagickFalse },
00764 { "Transparent", (long) TransparentColorspace, MagickFalse },
00765 { "XYZ", (long) XYZColorspace, MagickFalse },
00766 { "YCbCr", (long) YCbCrColorspace, MagickFalse },
00767 { "YCC", (long) YCCColorspace, MagickFalse },
00768 { "YIQ", (long) YIQColorspace, MagickFalse },
00769 { "YPbPr", (long) YPbPrColorspace, MagickFalse },
00770 { "YUV", (long) YUVColorspace, MagickFalse },
00771 { (char *) NULL, (long) UndefinedColorspace, MagickFalse }
00772 },
00773 DataTypeOptions[] =
00774 {
00775 { "Undefined", (long) UndefinedData, MagickTrue },
00776 { "Byte", (long) ByteData, MagickFalse },
00777 { "Long", (long) LongData, MagickFalse },
00778 { "Short", (long) ShortData, MagickFalse },
00779 { "String", (long) StringData, MagickFalse },
00780 { (char *) NULL, (long) UndefinedData, MagickFalse }
00781 },
00782 DecorateOptions[] =
00783 {
00784 { "Undefined", (long) UndefinedDecoration, MagickTrue },
00785 { "LineThrough", (long) LineThroughDecoration, MagickFalse },
00786 { "None", (long) NoDecoration, MagickFalse },
00787 { "Overline", (long) OverlineDecoration, MagickFalse },
00788 { "Underline", (long) UnderlineDecoration, MagickFalse },
00789 { (char *) NULL, (long) UndefinedDecoration, MagickFalse }
00790 },
00791 DisposeOptions[] =
00792 {
00793 { "Background", (long) BackgroundDispose, MagickFalse },
00794 { "None", (long) NoneDispose, MagickFalse },
00795 { "Previous", (long) PreviousDispose, MagickFalse },
00796 { "Undefined", (long) UndefinedDispose, MagickFalse },
00797 { "0", (long) UndefinedDispose, MagickFalse },
00798 { "1", (long) NoneDispose, MagickFalse },
00799 { "2", (long) BackgroundDispose, MagickFalse },
00800 { "3", (long) PreviousDispose, MagickFalse },
00801 { (char *) NULL, (long) UndefinedDispose, MagickFalse }
00802 },
00803 DistortOptions[] =
00804 {
00805 { "Undefined", (long) UndefinedDistortion, MagickTrue },
00806 { "Affine", (long) AffineDistortion, MagickFalse },
00807 { "AffineProjection", (long) AffineProjectionDistortion, MagickFalse },
00808 { "ScaleRotateTranslate", (long) ScaleRotateTranslateDistortion, MagickFalse },
00809 { "SRT", (long) ScaleRotateTranslateDistortion, MagickFalse },
00810 { "Perspective", (long) PerspectiveDistortion, MagickFalse },
00811 { "PerspectiveProjection", (long) PerspectiveProjectionDistortion, MagickFalse },
00812 { "Bilinear", (long) BilinearForwardDistortion, MagickTrue },
00813 { "BilinearForward", (long) BilinearForwardDistortion, MagickFalse },
00814 { "BilinearReverse", (long) BilinearReverseDistortion, MagickFalse },
00815 { "Polynomial", (long) PolynomialDistortion, MagickFalse },
00816 { "Arc", (long) ArcDistortion, MagickFalse },
00817 { "Polar", (long) PolarDistortion, MagickFalse },
00818 { "DePolar", (long) DePolarDistortion, MagickFalse },
00819 { "Barrel", (long) BarrelDistortion, MagickFalse },
00820 { "BarrelInverse", (long) BarrelInverseDistortion, MagickFalse },
00821 { "Shepards", (long) ShepardsDistortion, MagickFalse },
00822 { (char *) NULL, (long) UndefinedDistortion, MagickFalse }
00823 },
00824 DitherOptions[] =
00825 {
00826 { "Undefined", (long) UndefinedDitherMethod, MagickTrue },
00827 { "None", (long) NoDitherMethod, MagickFalse },
00828 { "FloydSteinberg", (long) FloydSteinbergDitherMethod, MagickFalse },
00829 { "Riemersma", (long) RiemersmaDitherMethod, MagickFalse },
00830 { (char *) NULL, (long) UndefinedEndian, MagickFalse }
00831 },
00832 EndianOptions[] =
00833 {
00834 { "Undefined", (long) UndefinedEndian, MagickTrue },
00835 { "LSB", (long) LSBEndian, MagickFalse },
00836 { "MSB", (long) MSBEndian, MagickFalse },
00837 { (char *) NULL, (long) UndefinedEndian, MagickFalse }
00838 },
00839 EvaluateOptions[] =
00840 {
00841 { "Undefined", (long) UndefinedEvaluateOperator, MagickTrue },
00842 { "Add", (long) AddEvaluateOperator, MagickFalse },
00843 { "AddModulus", (long) AddModulusEvaluateOperator, MagickFalse },
00844 { "And", (long) AndEvaluateOperator, MagickFalse },
00845 { "Cos", (long) CosineEvaluateOperator, MagickFalse },
00846 { "Cosine", (long) CosineEvaluateOperator, MagickFalse },
00847 { "Divide", (long) DivideEvaluateOperator, MagickFalse },
00848 { "GaussianNoise", (long) GaussianNoiseEvaluateOperator, MagickFalse },
00849 { "ImpulseNoise", (long) ImpulseNoiseEvaluateOperator, MagickFalse },
00850 { "LaplacianNoise", (long) LaplacianNoiseEvaluateOperator, MagickFalse },
00851 { "LeftShift", (long) LeftShiftEvaluateOperator, MagickFalse },
00852 { "Log", (long) LogEvaluateOperator, MagickFalse },
00853 { "Max", (long) MaxEvaluateOperator, MagickFalse },
00854 { "Min", (long) MinEvaluateOperator, MagickFalse },
00855 { "MultiplicativeNoise", (long) MultiplicativeNoiseEvaluateOperator, MagickFalse },
00856 { "Multiply", (long) MultiplyEvaluateOperator, MagickFalse },
00857 { "Or", (long) OrEvaluateOperator, MagickFalse },
00858 { "PoissonNoise", (long) PoissonNoiseEvaluateOperator, MagickFalse },
00859 { "Pow", (long) PowEvaluateOperator, MagickFalse },
00860 { "RightShift", (long) RightShiftEvaluateOperator, MagickFalse },
00861 { "Set", (long) SetEvaluateOperator, MagickFalse },
00862 { "Sin", (long) SineEvaluateOperator, MagickFalse },
00863 { "Sine", (long) SineEvaluateOperator, MagickFalse },
00864 { "Subtract", (long) SubtractEvaluateOperator, MagickFalse },
00865 { "Threshold", (long) ThresholdEvaluateOperator, MagickFalse },
00866 { "ThresholdBlack", (long) ThresholdBlackEvaluateOperator, MagickFalse },
00867 { "ThresholdWhite", (long) ThresholdWhiteEvaluateOperator, MagickFalse },
00868 { "UniformNoise", (long) UniformNoiseEvaluateOperator, MagickFalse },
00869 { "Xor", (long) XorEvaluateOperator, MagickFalse },
00870 { (char *) NULL, (long) UndefinedEvaluateOperator, MagickFalse }
00871 },
00872 FillRuleOptions[] =
00873 {
00874 { "Undefined", (long) UndefinedRule, MagickTrue },
00875 { "Evenodd", (long) EvenOddRule, MagickFalse },
00876 { "NonZero", (long) NonZeroRule, MagickFalse },
00877 { (char *) NULL, (long) UndefinedRule, MagickFalse }
00878 },
00879 FilterOptions[] =
00880 {
00881 { "Undefined", (long) UndefinedFilter, MagickTrue },
00882 { "Bartlett", (long) BartlettFilter, MagickFalse },
00883 { "Bessel", (long) BesselFilter, MagickFalse },
00884 { "Blackman", (long) BlackmanFilter, MagickFalse },
00885 { "Bohman", (long) BohmanFilter, MagickFalse },
00886 { "Box", (long) BoxFilter, MagickFalse },
00887 { "Catrom", (long) CatromFilter, MagickFalse },
00888 { "Cubic", (long) CubicFilter, MagickFalse },
00889 { "Gaussian", (long) GaussianFilter, MagickFalse },
00890 { "Hamming", (long) HammingFilter, MagickFalse },
00891 { "Hanning", (long) HanningFilter, MagickFalse },
00892 { "Hermite", (long) HermiteFilter, MagickFalse },
00893 { "Kaiser", (long) KaiserFilter, MagickFalse },
00894 { "Lagrange", (long) LagrangeFilter, MagickFalse },
00895 { "Lanczos", (long) LanczosFilter, MagickFalse },
00896 { "Mitchell", (long) MitchellFilter, MagickFalse },
00897 { "Parzen", (long) ParzenFilter, MagickFalse },
00898 { "Point", (long) PointFilter, MagickFalse },
00899 { "Quadratic", (long) QuadraticFilter, MagickFalse },
00900 { "Sinc", (long) SincFilter, MagickFalse },
00901 { "Triangle", (long) TriangleFilter, MagickFalse },
00902 { "Welsh", (long) WelshFilter, MagickFalse },
00903 { (char *) NULL, (long) UndefinedFilter, MagickFalse }
00904 },
00905 FunctionOptions[] =
00906 {
00907 { "Undefined", (long) UndefinedFunction, MagickTrue },
00908 { "Polynomial", (long) PolynomialFunction, MagickFalse },
00909 { "Sinusoid", (long) SinusoidFunction, MagickFalse },
00910 { "ArcSin", (long) ArcsinFunction, MagickFalse },
00911 { "ArcTan", (long) ArctanFunction, MagickFalse },
00912 { (char *) NULL, (long) UndefinedFunction, MagickFalse }
00913 },
00914 GravityOptions[] =
00915 {
00916 { "Undefined", (long) UndefinedGravity, MagickTrue },
00917 { "None", (long) UndefinedGravity, MagickFalse },
00918 { "Center", (long) CenterGravity, MagickFalse },
00919 { "East", (long) EastGravity, MagickFalse },
00920 { "Forget", (long) ForgetGravity, MagickFalse },
00921 { "NorthEast", (long) NorthEastGravity, MagickFalse },
00922 { "North", (long) NorthGravity, MagickFalse },
00923 { "NorthWest", (long) NorthWestGravity, MagickFalse },
00924 { "SouthEast", (long) SouthEastGravity, MagickFalse },
00925 { "South", (long) SouthGravity, MagickFalse },
00926 { "SouthWest", (long) SouthWestGravity, MagickFalse },
00927 { "West", (long) WestGravity, MagickFalse },
00928 { "Static", (long) StaticGravity, MagickFalse },
00929 { (char *) NULL, UndefinedGravity, MagickFalse }
00930 },
00931 ImageListOptions[] =
00932 {
00933 { "append", MagickTrue, MagickFalse },
00934 { "affinity", MagickTrue, MagickFalse },
00935 { "average", MagickTrue, MagickFalse },
00936 { "clut", MagickTrue, MagickFalse },
00937 { "coalesce", MagickTrue, MagickFalse },
00938 { "combine", MagickTrue, MagickFalse },
00939 { "composite", MagickTrue, MagickFalse },
00940 { "crop", MagickTrue, MagickFalse },
00941 { "debug", MagickTrue, MagickFalse },
00942 { "deconstruct", MagickTrue, MagickFalse },
00943 { "delete", MagickTrue, MagickFalse },
00944 { "flatten", MagickTrue, MagickFalse },
00945 { "fx", MagickTrue, MagickFalse },
00946 { "hald-clut", MagickTrue, MagickFalse },
00947 { "identify", MagickTrue, MagickFalse },
00948 { "insert", MagickTrue, MagickFalse },
00949 { "layers", MagickTrue, MagickFalse },
00950 { "limit", MagickTrue, MagickFalse },
00951 { "map", MagickTrue, MagickFalse },
00952 { "morph", MagickTrue, MagickFalse },
00953 { "mosaic", MagickTrue, MagickFalse },
00954 { "optimize", MagickTrue, MagickFalse },
00955 { "process", MagickTrue, MagickFalse },
00956 { "quiet", MagickTrue, MagickFalse },
00957 { "separate", MagickTrue, MagickFalse },
00958 { "swap", MagickTrue, MagickFalse },
00959 { "write", MagickTrue, MagickFalse },
00960 { (char *) NULL, MagickFalse, MagickFalse }
00961 },
00962 IntentOptions[] =
00963 {
00964 { "Undefined", (long) UndefinedIntent, MagickTrue },
00965 { "Absolute", (long) AbsoluteIntent, MagickFalse },
00966 { "Perceptual", (long) PerceptualIntent, MagickFalse },
00967 { "Relative", (long) RelativeIntent, MagickFalse },
00968 { "Saturation", (long) SaturationIntent, MagickFalse },
00969 { (char *) NULL, (long) UndefinedIntent, MagickFalse }
00970 },
00971 InterlaceOptions[] =
00972 {
00973 { "Undefined", (long) UndefinedInterlace, MagickTrue },
00974 { "Line", (long) LineInterlace, MagickFalse },
00975 { "None", (long) NoInterlace, MagickFalse },
00976 { "Plane", (long) PlaneInterlace, MagickFalse },
00977 { "Partition", (long) PartitionInterlace, MagickFalse },
00978 { "GIF", (long) GIFInterlace, MagickFalse },
00979 { "JPEG", (long) JPEGInterlace, MagickFalse },
00980 { "PNG", (long) PNGInterlace, MagickFalse },
00981 { (char *) NULL, (long) UndefinedInterlace, MagickFalse }
00982 },
00983 InterpolateOptions[] =
00984 {
00985 { "Undefined", (long) UndefinedInterpolatePixel, MagickTrue },
00986 { "Average", (long) AverageInterpolatePixel, MagickFalse },
00987 { "Bicubic", (long) BicubicInterpolatePixel, MagickFalse },
00988 { "Bilinear", (long) BilinearInterpolatePixel, MagickFalse },
00989 { "filter", (long) FilterInterpolatePixel, MagickFalse },
00990 { "Integer", (long) IntegerInterpolatePixel, MagickFalse },
00991 { "Mesh", (long) MeshInterpolatePixel, MagickFalse },
00992 { "NearestNeighbor", (long) NearestNeighborInterpolatePixel, MagickFalse },
00993 { "Spline", (long) SplineInterpolatePixel, MagickFalse },
00994 { (char *) NULL, (long) UndefinedInterpolatePixel, MagickFalse }
00995 },
00996 LayerOptions[] =
00997 {
00998 { "Undefined", (long) UndefinedLayer, MagickTrue },
00999 { "Coalesce", (long) CoalesceLayer, MagickFalse },
01000 { "CompareAny", (long) CompareAnyLayer, MagickFalse },
01001 { "CompareClear", (long) CompareClearLayer, MagickFalse },
01002 { "CompareOverlay", (long) CompareOverlayLayer, MagickFalse },
01003 { "Dispose", (long) DisposeLayer, MagickFalse },
01004 { "Optimize", (long) OptimizeLayer, MagickFalse },
01005 { "OptimizeFrame", (long) OptimizeImageLayer, MagickFalse },
01006 { "OptimizePlus", (long) OptimizePlusLayer, MagickFalse },
01007 { "OptimizeTransparency", (long) OptimizeTransLayer, MagickFalse },
01008 { "RemoveDups", (long) RemoveDupsLayer, MagickFalse },
01009 { "RemoveZero", (long) RemoveZeroLayer, MagickFalse },
01010 { "Composite", (long) CompositeLayer, MagickFalse },
01011 { "Merge", (long) MergeLayer, MagickFalse },
01012 { "Flatten", (long) FlattenLayer, MagickFalse },
01013 { "Mosaic", (long) MosaicLayer, MagickFalse },
01014 { "TrimBounds", (long) TrimBoundsLayer, MagickFalse },
01015 { (char *) NULL, (long) UndefinedLayer, MagickFalse }
01016 },
01017 LineCapOptions[] =
01018 {
01019 { "Undefined", (long) UndefinedCap, MagickTrue },
01020 { "Butt", (long) ButtCap, MagickFalse },
01021 { "Round", (long) RoundCap, MagickFalse },
01022 { "Square", (long) SquareCap, MagickFalse },
01023 { (char *) NULL, (long) UndefinedCap, MagickFalse }
01024 },
01025 LineJoinOptions[] =
01026 {
01027 { "Undefined", (long) UndefinedJoin, MagickTrue },
01028 { "Bevel", (long) BevelJoin, MagickFalse },
01029 { "Miter", (long) MiterJoin, MagickFalse },
01030 { "Round", (long) RoundJoin, MagickFalse },
01031 { (char *) NULL, (long) UndefinedJoin, MagickFalse }
01032 },
01033 ListOptions[] =
01034 {
01035 { "Align", (long) MagickAlignOptions, MagickFalse },
01036 { "Alpha", (long) MagickAlphaOptions, MagickFalse },
01037 { "Boolean", (long) MagickBooleanOptions, MagickFalse },
01038 { "Channel", (long) MagickChannelOptions, MagickFalse },
01039 { "Class", (long) MagickClassOptions, MagickFalse },
01040 { "ClipPath", (long) MagickClipPathOptions, MagickFalse },
01041 { "Coder", (long) MagickCoderOptions, MagickFalse },
01042 { "Color", (long) MagickColorOptions, MagickFalse },
01043 { "Colorspace", (long) MagickColorspaceOptions, MagickFalse },
01044 { "Command", (long) MagickCommandOptions, MagickFalse },
01045 { "Compose", (long) MagickComposeOptions, MagickFalse },
01046 { "Compress", (long) MagickCompressOptions, MagickFalse },
01047 { "Configure", (long) MagickConfigureOptions, MagickFalse },
01048 { "DataType", (long) MagickDataTypeOptions, MagickFalse },
01049 { "Debug", (long) MagickDebugOptions, MagickFalse },
01050 { "Decoration", (long) MagickDecorateOptions, MagickFalse },
01051 { "Delegate", (long) MagickDelegateOptions, MagickFalse },
01052 { "Dispose", (long) MagickDisposeOptions, MagickFalse },
01053 { "Distort", (long) MagickDistortOptions, MagickFalse },
01054 { "Dither", (long) MagickDitherOptions, MagickFalse },
01055 { "Endian", (long) MagickEndianOptions, MagickFalse },
01056 { "Evaluate", (long) MagickEvaluateOptions, MagickFalse },
01057 { "FillRule", (long) MagickFillRuleOptions, MagickFalse },
01058 { "Filter", (long) MagickFilterOptions, MagickFalse },
01059 { "Font", (long) MagickFontOptions, MagickFalse },
01060 { "Format", (long) MagickFormatOptions, MagickFalse },
01061 { "Function", (long) MagickFunctionOptions, MagickFalse },
01062 { "Gravity", (long) MagickGravityOptions, MagickFalse },
01063 { "ImageList", (long) MagickImageListOptions, MagickFalse },
01064 { "Intent", (long) MagickIntentOptions, MagickFalse },
01065 { "Interlace", (long) MagickInterlaceOptions, MagickFalse },
01066 { "Interpolate", (long) MagickInterpolateOptions, MagickFalse },
01067 { "Layers", (long) MagickLayerOptions, MagickFalse },
01068 { "LineCap", (long) MagickLineCapOptions, MagickFalse },
01069 { "LineJoin", (long) MagickLineJoinOptions, MagickFalse },
01070 { "List", (long) MagickListOptions, MagickFalse },
01071 { "Locale", (long) MagickLocaleOptions, MagickFalse },
01072 { "LogEvent", (long) MagickLogEventOptions, MagickFalse },
01073 { "Log", (long) MagickLogOptions, MagickFalse },
01074 { "Magic", (long) MagickMagicOptions, MagickFalse },
01075 { "Method", (long) MagickMethodOptions, MagickFalse },
01076 { "Metric", (long) MagickMetricOptions, MagickFalse },
01077 { "Mime", (long) MagickMimeOptions, MagickFalse },
01078 { "Mode", (long) MagickModeOptions, MagickFalse },
01079 { "Module", (long) MagickModuleOptions, MagickFalse },
01080 { "Noise", (long) MagickNoiseOptions, MagickFalse },
01081 { "Orientation", (long) MagickOrientationOptions, MagickFalse },
01082 { "Policy", (long) MagickPolicyOptions, MagickFalse },
01083 { "PolicyDomain", (long) MagickPolicyDomainOptions, MagickFalse },
01084 { "PolicyRights", (long) MagickPolicyRightsOptions, MagickFalse },
01085 { "Preview", (long) MagickPreviewOptions, MagickFalse },
01086 { "Primitive", (long) MagickPrimitiveOptions, MagickFalse },
01087 { "QuantumFormat", (long) MagickQuantumFormatOptions, MagickFalse },
01088 { "Resource", (long) MagickResourceOptions, MagickFalse },
01089 { "SparseColor", (long) MagickSparseColorOptions, MagickFalse },
01090 { "Storage", (long) MagickStorageOptions, MagickFalse },
01091 { "Stretch", (long) MagickStretchOptions, MagickFalse },
01092 { "Style", (long) MagickStyleOptions, MagickFalse },
01093 { "Threshold", (long) MagickThresholdOptions, MagickFalse },
01094 { "Type", (long) MagickTypeOptions, MagickFalse },
01095 { "Units", (long) MagickResolutionOptions, MagickFalse },
01096 { "Undefined", (long) MagickUndefinedOptions, MagickTrue },
01097 { "Validate", (long) MagickValidateOptions, MagickFalse },
01098 { "VirtualPixel", (long) MagickVirtualPixelOptions, MagickFalse },
01099 { (char *) NULL, (long) MagickUndefinedOptions, MagickFalse }
01100 },
01101 LogEventOptions[] =
01102 {
01103 { "Undefined", (long) UndefinedEvents, MagickTrue },
01104 { "All", (long) (AllEvents &~ TraceEvent), MagickFalse },
01105 { "Annotate", (long) AnnotateEvent, MagickFalse },
01106 { "Blob", (long) BlobEvent, MagickFalse },
01107 { "Cache", (long) CacheEvent, MagickFalse },
01108 { "Coder", (long) CoderEvent, MagickFalse },
01109 { "Configure", (long) ConfigureEvent, MagickFalse },
01110 { "Deprecate", (long) DeprecateEvent, MagickFalse },
01111 { "Draw", (long) DrawEvent, MagickFalse },
01112 { "Exception", (long) ExceptionEvent, MagickFalse },
01113 { "Locale", (long) LocaleEvent, MagickFalse },
01114 { "Module", (long) ModuleEvent, MagickFalse },
01115 { "None", (long) NoEvents, MagickFalse },
01116 { "Policy", (long) PolicyEvent, MagickFalse },
01117 { "Resource", (long) ResourceEvent, MagickFalse },
01118 { "Trace", (long) TraceEvent, MagickFalse },
01119 { "Transform", (long) TransformEvent, MagickFalse },
01120 { "User", (long) UserEvent, MagickFalse },
01121 { "Wand", (long) WandEvent, MagickFalse },
01122 { "X11", (long) X11Event, MagickFalse },
01123 { (char *) NULL, (long) UndefinedEvents, MagickFalse }
01124 },
01125 MetricOptions[] =
01126 {
01127 { "Undefined", (long) UndefinedMetric, MagickTrue },
01128 { "AE", (long) AbsoluteErrorMetric, MagickFalse },
01129 { "MAE", (long) MeanAbsoluteErrorMetric, MagickFalse },
01130 { "MEPP", (long) MeanErrorPerPixelMetric, MagickFalse },
01131 { "MSE", (long) MeanSquaredErrorMetric, MagickFalse },
01132 { "PAE", (long) PeakAbsoluteErrorMetric, MagickFalse },
01133 { "PSNR", (long) PeakSignalToNoiseRatioMetric, MagickFalse },
01134 { "RMSE", (long) RootMeanSquaredErrorMetric, MagickFalse },
01135 { (char *) NULL, (long) UndefinedMetric, MagickFalse }
01136 },
01137 MethodOptions[] =
01138 {
01139 { "Undefined", (long) UndefinedMethod, MagickTrue },
01140 { "FillToBorder", (long) FillToBorderMethod, MagickFalse },
01141 { "Floodfill", (long) FloodfillMethod, MagickFalse },
01142 { "Point", (long) PointMethod, MagickFalse },
01143 { "Replace", (long) ReplaceMethod, MagickFalse },
01144 { "Reset", (long) ResetMethod, MagickFalse },
01145 { (char *) NULL, (long) UndefinedMethod, MagickFalse }
01146 },
01147 ModeOptions[] =
01148 {
01149 { "Undefined", (long) UndefinedMode, MagickTrue },
01150 { "Concatenate", (long) ConcatenateMode, MagickFalse },
01151 { "Frame", (long) FrameMode, MagickFalse },
01152 { "Unframe", (long) UnframeMode, MagickFalse },
01153 { (char *) NULL, (long) UndefinedMode, MagickFalse }
01154 },
01155 NoiseOptions[] =
01156 {
01157 { "Undefined", (long) UndefinedNoise, MagickTrue },
01158 { "Gaussian", (long) (long) GaussianNoise, MagickFalse },
01159 { "Impulse", (long) ImpulseNoise, MagickFalse },
01160 { "Laplacian", (long) LaplacianNoise, MagickFalse },
01161 { "Multiplicative", (long) MultiplicativeGaussianNoise, MagickFalse },
01162 { "Poisson", (long) PoissonNoise, MagickFalse },
01163 { "Random", (long) RandomNoise, MagickFalse },
01164 { "Uniform", (long) UniformNoise, MagickFalse },
01165 { (char *) NULL, (long) UndefinedNoise, MagickFalse }
01166 },
01167 OrientationOptions[] =
01168 {
01169 { "Undefined", (long) UndefinedOrientation, MagickTrue },
01170 { "TopLeft", (long) TopLeftOrientation, MagickFalse },
01171 { "TopRight", (long) TopRightOrientation, MagickFalse },
01172 { "BottomRight", (long) BottomRightOrientation, MagickFalse },
01173 { "BottomLeft", (long) BottomLeftOrientation, MagickFalse },
01174 { "LeftTop", (long) LeftTopOrientation, MagickFalse },
01175 { "RightTop", (long) RightTopOrientation, MagickFalse },
01176 { "RightBottom", (long) RightBottomOrientation, MagickFalse },
01177 { "LeftBottom", (long) LeftBottomOrientation, MagickFalse }
01178 },
01179 PolicyDomainOptions[] =
01180 {
01181 { "Undefined", (long) UndefinedPolicyDomain, MagickTrue },
01182 { "Coder", (long) CoderPolicyDomain, MagickFalse },
01183 { "Delegate", (long) DelegatePolicyDomain, MagickFalse },
01184 { "Filter", (long) FilterPolicyDomain, MagickFalse },
01185 { "Path", (long) PathPolicyDomain, MagickFalse },
01186 { "Resource", (long) ResourcePolicyDomain, MagickFalse }
01187 },
01188 PolicyRightsOptions[] =
01189 {
01190 { "Undefined", (long) UndefinedPolicyRights, MagickTrue },
01191 { "None", (long) NoPolicyRights, MagickFalse },
01192 { "Read", (long) ReadPolicyRights, MagickFalse },
01193 { "Write", (long) WritePolicyRights, MagickFalse },
01194 { "Execute", (long) ExecutePolicyRights, MagickFalse }
01195 },
01196 PreviewOptions[] =
01197 {
01198 { "Undefined", (long) UndefinedPreview, MagickTrue },
01199 { "AddNoise", (long) AddNoisePreview, MagickFalse },
01200 { "Blur", (long) BlurPreview, MagickFalse },
01201 { "Brightness", (long) BrightnessPreview, MagickFalse },
01202 { "Charcoal", (long) CharcoalDrawingPreview, MagickFalse },
01203 { "Despeckle", (long) DespecklePreview, MagickFalse },
01204 { "Dull", (long) DullPreview, MagickFalse },
01205 { "EdgeDetect", (long) EdgeDetectPreview, MagickFalse },
01206 { "Gamma", (long) GammaPreview, MagickFalse },
01207 { "Grayscale", (long) GrayscalePreview, MagickFalse },
01208 { "Hue", (long) HuePreview, MagickFalse },
01209 { "Implode", (long) ImplodePreview, MagickFalse },
01210 { "JPEG", (long) JPEGPreview, MagickFalse },
01211 { "OilPaint", (long) OilPaintPreview, MagickFalse },
01212 { "Quantize", (long) QuantizePreview, MagickFalse },
01213 { "Raise", (long) RaisePreview, MagickFalse },
01214 { "ReduceNoise", (long) ReduceNoisePreview, MagickFalse },
01215 { "Roll", (long) RollPreview, MagickFalse },
01216 { "Rotate", (long) RotatePreview, MagickFalse },
01217 { "Saturation", (long) SaturationPreview, MagickFalse },
01218 { "Segment", (long) SegmentPreview, MagickFalse },
01219 { "Shade", (long) ShadePreview, MagickFalse },
01220 { "Sharpen", (long) SharpenPreview, MagickFalse },
01221 { "Shear", (long) ShearPreview, MagickFalse },
01222 { "Solarize", (long) SolarizePreview, MagickFalse },
01223 { "Spiff", (long) SpiffPreview, MagickFalse },
01224 { "Spread", (long) SpreadPreview, MagickFalse },
01225 { "Swirl", (long) SwirlPreview, MagickFalse },
01226 { "Threshold", (long) ThresholdPreview, MagickFalse },
01227 { "Wave", (long) WavePreview, MagickFalse },
01228 { (char *) NULL, (long) UndefinedPreview, MagickFalse }
01229 },
01230 PrimitiveOptions[] =
01231 {
01232 { "Undefined", (long) UndefinedPrimitive, MagickTrue },
01233 { "Arc", (long) ArcPrimitive, MagickFalse },
01234 { "Bezier", (long) BezierPrimitive, MagickFalse },
01235 { "Circle", (long) CirclePrimitive, MagickFalse },
01236 { "Color", (long) ColorPrimitive, MagickFalse },
01237 { "Ellipse", (long) EllipsePrimitive, MagickFalse },
01238 { "Image", (long) ImagePrimitive, MagickFalse },
01239 { "Line", (long) LinePrimitive, MagickFalse },
01240 { "Matte", (long) MattePrimitive, MagickFalse },
01241 { "Path", (long) PathPrimitive, MagickFalse },
01242 { "Point", (long) PointPrimitive, MagickFalse },
01243 { "Polygon", (long) PolygonPrimitive, MagickFalse },
01244 { "Polyline", (long) PolylinePrimitive, MagickFalse },
01245 { "Rectangle", (long) RectanglePrimitive, MagickFalse },
01246 { "roundRectangle", (long) RoundRectanglePrimitive, MagickFalse },
01247 { "Text", (long) TextPrimitive, MagickFalse },
01248 { (char *) NULL, (long) UndefinedPrimitive, MagickFalse }
01249 },
01250 QuantumFormatOptions[] =
01251 {
01252 { "Undefined", (long) UndefinedQuantumFormat, MagickTrue },
01253 { "FloatingPoint", (long) FloatingPointQuantumFormat, MagickFalse },
01254 { "Signed", (long) SignedQuantumFormat, MagickFalse },
01255 { "Unsigned", (long) UnsignedQuantumFormat, MagickFalse },
01256 { (char *) NULL, (long) FloatingPointQuantumFormat, MagickFalse }
01257 },
01258 ResolutionOptions[] =
01259 {
01260 { "Undefined", (long) UndefinedResolution, MagickTrue },
01261 { "PixelsPerInch", (long) PixelsPerInchResolution, MagickFalse },
01262 { "PixelsPerCentimeter", (long) PixelsPerCentimeterResolution, MagickFalse },
01263 { (char *) NULL, (long) UndefinedResolution, MagickFalse }
01264 },
01265 ResourceOptions[] =
01266 {
01267 { "Undefined", (long) UndefinedResource, MagickTrue },
01268 { "Area", (long) AreaResource, MagickFalse },
01269 { "Disk", (long) DiskResource, MagickFalse },
01270 { "File", (long) FileResource, MagickFalse },
01271 { "Map", (long) MapResource, MagickFalse },
01272 { "Memory", (long) MemoryResource, MagickFalse },
01273 { "Thread", (long) ThreadResource, MagickFalse },
01274 { "Time", (long) TimeResource, MagickFalse },
01275 { (char *) NULL, (long) UndefinedResource, MagickFalse }
01276 },
01277 SparseColorOptions[] =
01278 {
01279 { "Undefined", (long) UndefinedDistortion, MagickTrue },
01280 { "Barycentric", (long) BarycentricColorInterpolate, MagickFalse },
01281 { "Bilinear", (long) BilinearColorInterpolate, MagickFalse },
01282 { "Shepards", (long) ShepardsColorInterpolate, MagickFalse },
01283 { "Voronoi", (long) VoronoiColorInterpolate, MagickFalse },
01284 { (char *) NULL, (long) UndefinedResource, MagickFalse }
01285 },
01286 StorageOptions[] =
01287 {
01288 { "Undefined", (long) UndefinedPixel, MagickTrue },
01289 { "Char", (long) CharPixel, MagickFalse },
01290 { "Double", (long) DoublePixel, MagickFalse },
01291 { "Float", (long) FloatPixel, MagickFalse },
01292 { "Integer", (long) IntegerPixel, MagickFalse },
01293 { "Long", (long) LongPixel, MagickFalse },
01294 { "Quantum", (long) QuantumPixel, MagickFalse },
01295 { "Short", (long) ShortPixel, MagickFalse },
01296 { (char *) NULL, (long) UndefinedResource, MagickFalse }
01297 },
01298 StretchOptions[] =
01299 {
01300 { "Undefined", (long) UndefinedStretch, MagickTrue },
01301 { "Any", (long) AnyStretch, MagickFalse },
01302 { "Condensed", (long) CondensedStretch, MagickFalse },
01303 { "Expanded", (long) ExpandedStretch, MagickFalse },
01304 { "ExtraCondensed", (long) ExtraCondensedStretch, MagickFalse },
01305 { "ExtraExpanded", (long) ExtraExpandedStretch, MagickFalse },
01306 { "Normal", (long) NormalStretch, MagickFalse },
01307 { "SemiCondensed", (long) SemiCondensedStretch, MagickFalse },
01308 { "SemiExpanded", (long) SemiExpandedStretch, MagickFalse },
01309 { "UltraCondensed", (long) UltraCondensedStretch, MagickFalse },
01310 { "UltraExpanded", (long) UltraExpandedStretch, MagickFalse },
01311 { (char *) NULL, (long) UndefinedStretch, MagickFalse }
01312 },
01313 StyleOptions[] =
01314 {
01315 { "Undefined", (long) UndefinedStyle, MagickTrue },
01316 { "Any", (long) AnyStyle, MagickFalse },
01317 { "Italic", (long) ItalicStyle, MagickFalse },
01318 { "Normal", (long) NormalStyle, MagickFalse },
01319 { "Oblique", (long) ObliqueStyle, MagickFalse },
01320 { (char *) NULL, (long) UndefinedStyle, MagickFalse }
01321 },
01322 TypeOptions[] =
01323 {
01324 { "Undefined", (long) UndefinedType, MagickTrue },
01325 { "Bilevel", (long) BilevelType, MagickFalse },
01326 { "ColorSeparation", (long) ColorSeparationType, MagickFalse },
01327 { "ColorSeparationMatte", (long) ColorSeparationMatteType, MagickFalse },
01328 { "Grayscale", (long) GrayscaleType, MagickFalse },
01329 { "GrayscaleMatte", (long) GrayscaleMatteType, MagickFalse },
01330 { "Optimize", (long) OptimizeType, MagickFalse },
01331 { "Palette", (long) PaletteType, MagickFalse },
01332 { "PaletteBilevelMatte", (long) PaletteBilevelMatteType, MagickFalse },
01333 { "PaletteMatte", (long) PaletteMatteType, MagickFalse },
01334 { "TrueColorMatte", (long) TrueColorMatteType, MagickFalse },
01335 { "TrueColor", (long) TrueColorType, MagickFalse },
01336 { (char *) NULL, (long) UndefinedType, MagickFalse }
01337 },
01338 ValidateOptions[] =
01339 {
01340 { "Undefined", (long) UndefinedValidate, MagickTrue },
01341 { "All", (long) AllValidate, MagickFalse },
01342 { "Compare", (long) CompareValidate, MagickFalse },
01343 { "Composite", (long) CompositeValidate, MagickFalse },
01344 { "Convert", (long) ConvertValidate, MagickFalse },
01345 { "FormatsInMemory", (long) FormatsInMemoryValidate, MagickFalse },
01346 { "FormatsOnDisk", (long) FormatsOnDiskValidate, MagickFalse },
01347 { "Identify", (long) IdentifyValidate, MagickFalse },
01348 { "ImportExport", (long) ImportExportValidate, MagickFalse },
01349 { "Montage", (long) MontageValidate, MagickFalse },
01350 { "Stream", (long) StreamValidate, MagickFalse },
01351 { "None", (long) NoValidate, MagickFalse },
01352 { (char *) NULL, (long) UndefinedValidate, MagickFalse }
01353 },
01354 VirtualPixelOptions[] =
01355 {
01356 { "Undefined", (long) UndefinedVirtualPixelMethod, MagickTrue },
01357 { "Background", (long) BackgroundVirtualPixelMethod, MagickFalse },
01358 { "Black", (long) BlackVirtualPixelMethod, MagickFalse },
01359 { "Constant", (long) BackgroundVirtualPixelMethod, MagickTrue },
01360 { "CheckerTile", (long) CheckerTileVirtualPixelMethod, MagickFalse },
01361 { "Dither", (long) DitherVirtualPixelMethod, MagickFalse },
01362 { "Edge", (long) EdgeVirtualPixelMethod, MagickFalse },
01363 { "Gray", (long) GrayVirtualPixelMethod, MagickFalse },
01364 { "HorizontalTile", (long) HorizontalTileVirtualPixelMethod, MagickFalse },
01365 { "HorizontalTileEdge", (long) HorizontalTileEdgeVirtualPixelMethod, MagickFalse },
01366 { "Mirror", (long) MirrorVirtualPixelMethod, MagickFalse },
01367 { "Random", (long) RandomVirtualPixelMethod, MagickFalse },
01368 { "Tile", (long) TileVirtualPixelMethod, MagickFalse },
01369 { "Transparent", (long) TransparentVirtualPixelMethod, MagickFalse },
01370 { "VerticalTile", (long) VerticalTileVirtualPixelMethod, MagickFalse },
01371 { "VerticalTileEdge", (long) VerticalTileEdgeVirtualPixelMethod, MagickFalse },
01372 { "White", (long) WhiteVirtualPixelMethod, MagickFalse },
01373 { (char *) NULL, (long) UndefinedVirtualPixelMethod, MagickFalse }
01374 };
01375
01376
01377
01378
01379
01380
01381
01382
01383
01384
01385
01386
01387
01388
01389
01390
01391
01392
01393
01394
01395
01396
01397
01398
01399
01400
01401 MagickExport MagickBooleanType CloneImageOptions(ImageInfo *image_info,
01402 const ImageInfo *clone_info)
01403 {
01404 assert(image_info != (ImageInfo *) NULL);
01405 assert(image_info->signature == MagickSignature);
01406 if (image_info->debug != MagickFalse)
01407 (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
01408 image_info->filename);
01409 assert(clone_info != (const ImageInfo *) NULL);
01410 assert(clone_info->signature == MagickSignature);
01411 if (clone_info->options != (void *) NULL)
01412 image_info->options=CloneSplayTree((SplayTreeInfo *) clone_info->options,
01413 (void *(*)(void *)) ConstantString,(void *(*)(void *)) ConstantString);
01414 return(MagickTrue);
01415 }
01416
01417
01418
01419
01420
01421
01422
01423
01424
01425
01426
01427
01428
01429
01430
01431
01432
01433
01434
01435
01436
01437
01438
01439
01440
01441
01442 MagickExport MagickBooleanType DefineImageOption(ImageInfo *image_info,
01443 const char *option)
01444 {
01445 char
01446 key[MaxTextExtent],
01447 value[MaxTextExtent];
01448
01449 register char
01450 *p;
01451
01452 assert(image_info != (ImageInfo *) NULL);
01453 assert(option != (const char *) NULL);
01454 (void) CopyMagickString(key,option,MaxTextExtent);
01455 for (p=key; *p != '\0'; p++)
01456 if (*p == '=')
01457 break;
01458 *value='\0';
01459 if (*p == '=')
01460 (void) CopyMagickString(value,p+1,MaxTextExtent);
01461 *p='\0';
01462 return(SetImageOption(image_info,key,value));
01463 }
01464
01465
01466
01467
01468
01469
01470
01471
01472
01473
01474
01475
01476
01477
01478
01479
01480
01481
01482
01483
01484
01485
01486
01487
01488
01489
01490 MagickExport MagickBooleanType DeleteImageOption(ImageInfo *image_info,
01491 const char *option)
01492 {
01493 assert(image_info != (ImageInfo *) NULL);
01494 assert(image_info->signature == MagickSignature);
01495 if (image_info->debug != MagickFalse)
01496 (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
01497 image_info->filename);
01498 if (image_info->options == (void *) NULL)
01499 return(MagickFalse);
01500 return(DeleteNodeFromSplayTree((SplayTreeInfo *) image_info->options,option));
01501 }
01502
01503
01504
01505
01506
01507
01508
01509
01510
01511
01512
01513
01514
01515
01516
01517
01518
01519
01520
01521
01522
01523
01524
01525 MagickExport void DestroyImageOptions(ImageInfo *image_info)
01526 {
01527 assert(image_info != (ImageInfo *) NULL);
01528 assert(image_info->signature == MagickSignature);
01529 if (image_info->debug != MagickFalse)
01530 (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
01531 image_info->filename);
01532 if (image_info->options != (void *) NULL)
01533 image_info->options=DestroySplayTree((SplayTreeInfo *) image_info->options);
01534 }
01535
01536
01537
01538
01539
01540
01541
01542
01543
01544
01545
01546
01547
01548
01549
01550
01551
01552
01553
01554
01555
01556
01557
01558
01559
01560
01561 MagickExport const char *GetImageOption(const ImageInfo *image_info,
01562 const char *key)
01563 {
01564 const char
01565 *option;
01566
01567 assert(image_info != (ImageInfo *) NULL);
01568 assert(image_info->signature == MagickSignature);
01569 if (image_info->debug != MagickFalse)
01570 (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
01571 image_info->filename);
01572 if (image_info->options == (void *) NULL)
01573 return((const char *) NULL);
01574 option=(const char *) GetValueFromSplayTree((SplayTreeInfo *)
01575 image_info->options,key);
01576 return(option);
01577 }
01578
01579
01580
01581
01582
01583
01584
01585
01586
01587
01588
01589
01590
01591
01592
01593
01594
01595
01596
01597
01598
01599
01600
01601
01602 static const OptionInfo *GetOptionInfo(const MagickOption option)
01603 {
01604 switch (option)
01605 {
01606 case MagickAlignOptions: return(AlignOptions);
01607 case MagickAlphaOptions: return(AlphaOptions);
01608 case MagickBooleanOptions: return(BooleanOptions);
01609 case MagickChannelOptions: return(ChannelOptions);
01610 case MagickClassOptions: return(ClassOptions);
01611 case MagickClipPathOptions: return(ClipPathOptions);
01612 case MagickColorspaceOptions: return(ColorspaceOptions);
01613 case MagickCommandOptions: return(CommandOptions);
01614 case MagickComposeOptions: return(ComposeOptions);
01615 case MagickCompressOptions: return(CompressOptions);
01616 case MagickDataTypeOptions: return(DataTypeOptions);
01617 case MagickDebugOptions: return(LogEventOptions);
01618 case MagickDecorateOptions: return(DecorateOptions);
01619 case MagickDisposeOptions: return(DisposeOptions);
01620 case MagickDistortOptions: return(DistortOptions);
01621 case MagickDitherOptions: return(DitherOptions);
01622 case MagickEndianOptions: return(EndianOptions);
01623 case MagickEvaluateOptions: return(EvaluateOptions);
01624 case MagickFillRuleOptions: return(FillRuleOptions);
01625 case MagickFilterOptions: return(FilterOptions);
01626 case MagickFunctionOptions: return(FunctionOptions);
01627 case MagickGravityOptions: return(GravityOptions);
01628 case MagickImageListOptions: return(ImageListOptions);
01629 case MagickIntentOptions: return(IntentOptions);
01630 case MagickInterlaceOptions: return(InterlaceOptions);
01631 case MagickInterpolateOptions: return(InterpolateOptions);
01632 case MagickLayerOptions: return(LayerOptions);
01633 case MagickLineCapOptions: return(LineCapOptions);
01634 case MagickLineJoinOptions: return(LineJoinOptions);
01635 case MagickListOptions: return(ListOptions);
01636 case MagickLogEventOptions: return(LogEventOptions);
01637 case MagickMetricOptions: return(MetricOptions);
01638 case MagickMethodOptions: return(MethodOptions);
01639 case MagickModeOptions: return(ModeOptions);
01640 case MagickNoiseOptions: return(NoiseOptions);
01641 case MagickOrientationOptions: return(OrientationOptions);
01642 case MagickPolicyDomainOptions: return(PolicyDomainOptions);
01643 case MagickPolicyRightsOptions: return(PolicyRightsOptions);
01644 case MagickPreviewOptions: return(PreviewOptions);
01645 case MagickPrimitiveOptions: return(PrimitiveOptions);
01646 case MagickQuantumFormatOptions: return(QuantumFormatOptions);
01647 case MagickResolutionOptions: return(ResolutionOptions);
01648 case MagickResourceOptions: return(ResourceOptions);
01649 case MagickSparseColorOptions: return(SparseColorOptions);
01650 case MagickStorageOptions: return(StorageOptions);
01651 case MagickStretchOptions: return(StretchOptions);
01652 case MagickStyleOptions: return(StyleOptions);
01653 case MagickTypeOptions: return(TypeOptions);
01654 case MagickValidateOptions: return(ValidateOptions);
01655 case MagickVirtualPixelOptions: return(VirtualPixelOptions);
01656 default: break;
01657 }
01658 return((const OptionInfo *) NULL);
01659 }
01660
01661 MagickExport char **GetMagickOptions(const MagickOption value)
01662 {
01663 char
01664 **values;
01665
01666 const OptionInfo
01667 *option_info;
01668
01669 register long
01670 i;
01671
01672 option_info=GetOptionInfo(value);
01673 if (option_info == (const OptionInfo *) NULL)
01674 return((char **) NULL);
01675 for (i=0; option_info[i].mnemonic != (const char *) NULL; i++) ;
01676 values=(char **) AcquireQuantumMemory((size_t) i+1UL,sizeof(*values));
01677 if (values == (char **) NULL)
01678 ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
01679 for (i=0; option_info[i].mnemonic != (const char *) NULL; i++)
01680 values[i]=AcquireString(option_info[i].mnemonic);
01681 values[i]=(char *) NULL;
01682 return(values);
01683 }
01684
01685
01686
01687
01688
01689
01690
01691
01692
01693
01694
01695
01696
01697
01698
01699
01700
01701
01702
01703
01704
01705
01706
01707 MagickExport char *GetNextImageOption(const ImageInfo *image_info)
01708 {
01709 assert(image_info != (ImageInfo *) NULL);
01710 assert(image_info->signature == MagickSignature);
01711 if (image_info->debug != MagickFalse)
01712 (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
01713 image_info->filename);
01714 if (image_info->options == (void *) NULL)
01715 return((char *) NULL);
01716 return((char *) GetNextKeyInSplayTree((SplayTreeInfo *) image_info->options));
01717 }
01718
01719
01720
01721
01722
01723
01724
01725
01726
01727
01728
01729
01730
01731
01732
01733
01734
01735
01736
01737
01738
01739
01740
01741
01742 MagickExport MagickBooleanType IsMagickOption(const char *option)
01743 {
01744 assert(option != (const char *) NULL);
01745 if ((*option != '-') && (*option != '+'))
01746 return(MagickFalse);
01747 if (strlen(option) == 1)
01748 return(MagickFalse);
01749 option++;
01750 if (isalpha((int) ((unsigned char) *option)) == 0)
01751 return(MagickFalse);
01752 return(MagickTrue);
01753 }
01754
01755
01756
01757
01758
01759
01760
01761
01762
01763
01764
01765
01766
01767
01768
01769
01770
01771
01772
01773
01774
01775
01776
01777
01778
01779
01780 MagickExport const char *MagickOptionToMnemonic(const MagickOption option,
01781 const long type)
01782 {
01783 const OptionInfo
01784 *option_info;
01785
01786 register long
01787 i;
01788
01789 option_info=GetOptionInfo(option);
01790 if (option_info == (const OptionInfo *) NULL)
01791 return((const char *) NULL);
01792 for (i=0; option_info[i].mnemonic != (const char *) NULL; i++)
01793 if (type == option_info[i].type)
01794 break;
01795 if (option_info[i].mnemonic == (const char *) NULL)
01796 return("undefined");
01797 return(option_info[i].mnemonic);
01798 }
01799
01800
01801
01802
01803
01804
01805
01806
01807
01808
01809
01810
01811
01812
01813
01814
01815
01816
01817
01818
01819
01820
01821
01822
01823
01824
01825
01826
01827 MagickExport MagickBooleanType ListMagickOptions(FILE *file,
01828 const MagickOption option,ExceptionInfo *magick_unused(exception))
01829 {
01830 const OptionInfo
01831 *option_info;
01832
01833 register long
01834 i;
01835
01836 if (file == (FILE *) NULL)
01837 file=stdout;
01838 option_info=GetOptionInfo(option);
01839 if (option_info == (const OptionInfo *) NULL)
01840 return(MagickFalse);
01841 for (i=0; option_info[i].mnemonic != (char *) NULL; i++)
01842 {
01843 if (option_info[i].stealth != MagickFalse)
01844 continue;
01845 (void) fprintf(file,"%s\n",option_info[i].mnemonic);
01846 }
01847 return(MagickTrue);
01848 }
01849
01850
01851
01852
01853
01854
01855
01856
01857
01858
01859
01860
01861
01862
01863
01864
01865
01866
01867
01868
01869
01870
01871
01872
01873 MagickExport long ParseChannelOption(const char *channels)
01874 {
01875 long
01876 channel;
01877
01878 register long
01879 i;
01880
01881 channel=ParseMagickOption(MagickChannelOptions,MagickTrue,channels);
01882 if (channel >= 0)
01883 return(channel);
01884 channel=0;
01885 for (i=0; i < (long) strlen(channels); i++)
01886 {
01887 switch (channels[i])
01888 {
01889 case 'A':
01890 case 'a':
01891 {
01892 channel|=OpacityChannel;
01893 break;
01894 }
01895 case 'B':
01896 case 'b':
01897 {
01898 channel|=BlueChannel;
01899 break;
01900 }
01901 case 'C':
01902 case 'c':
01903 {
01904 channel|=CyanChannel;
01905 break;
01906 }
01907 case 'g':
01908 case 'G':
01909 {
01910 channel|=GreenChannel;
01911 break;
01912 }
01913 case 'I':
01914 case 'i':
01915 {
01916 channel|=IndexChannel;
01917 break;
01918 }
01919 case 'K':
01920 case 'k':
01921 {
01922 channel|=BlackChannel;
01923 break;
01924 }
01925 case 'M':
01926 case 'm':
01927 {
01928 channel|=MagentaChannel;
01929 break;
01930 }
01931 case 'o':
01932 case 'O':
01933 {
01934 channel|=OpacityChannel;
01935 break;
01936 }
01937 case 'R':
01938 case 'r':
01939 {
01940 channel|=RedChannel;
01941 break;
01942 }
01943 case 'Y':
01944 case 'y':
01945 {
01946 channel|=YellowChannel;
01947 break;
01948 }
01949 default:
01950 return(-1);
01951 }
01952 }
01953 return(channel);
01954 }
01955
01956
01957
01958
01959
01960
01961
01962
01963
01964
01965
01966
01967
01968
01969
01970
01971
01972
01973
01974
01975
01976
01977
01978
01979
01980
01981
01982
01983
01984 MagickExport long ParseMagickOption(const MagickOption option,
01985 const MagickBooleanType list,const char *options)
01986 {
01987 char
01988 token[MaxTextExtent];
01989
01990 const OptionInfo
01991 *option_info;
01992
01993 int
01994 sentinel;
01995
01996 long
01997 option_types;
01998
01999 MagickBooleanType
02000 negate;
02001
02002 register char
02003 *q;
02004
02005 register const char
02006 *p;
02007
02008 register long
02009 i;
02010
02011 option_info=GetOptionInfo(option);
02012 if (option_info == (const OptionInfo *) NULL)
02013 return(-1);
02014 option_types=0;
02015 sentinel=',';
02016 if (strchr(options,'|') != (char *) NULL)
02017 sentinel='|';
02018 for (p=options; p != (char *) NULL; p=strchr(p,sentinel))
02019 {
02020 while (((isspace((int) ((unsigned char) *p)) != 0) || (*p == sentinel)) &&
02021 (*p != '\0'))
02022 p++;
02023 negate=(*p == '!') ? MagickTrue : MagickFalse;
02024 if (negate != MagickFalse)
02025 p++;
02026 q=token;
02027 while (((isspace((int) ((unsigned char) *p)) == 0) && (*p != sentinel)) &&
02028 (*p != '\0'))
02029 {
02030 if ((q-token) >= MaxTextExtent)
02031 break;
02032 *q++=(*p++);
02033 }
02034 *q='\0';
02035 for (i=0; option_info[i].mnemonic != (char *) NULL; i++)
02036 if (LocaleCompare(token,option_info[i].mnemonic) == 0)
02037 {
02038 if (*token == '!')
02039 option_types=option_types &~ option_info[i].type;
02040 else
02041 option_types=option_types | option_info[i].type;
02042 break;
02043 }
02044 if ((option_info[i].mnemonic == (char *) NULL) &&
02045 ((strchr(token+1,'-') != (char *) NULL) ||
02046 (strchr(token+1,'_') != (char *) NULL)))
02047 {
02048 while ((q=strchr(token+1,'-')) != (char *) NULL)
02049 (void) CopyMagickString(q,q+1,MaxTextExtent-strlen(q));
02050 while ((q=strchr(token+1,'_')) != (char *) NULL)
02051 (void) CopyMagickString(q,q+1,MaxTextExtent-strlen(q));
02052 for (i=0; option_info[i].mnemonic != (char *) NULL; i++)
02053 if (LocaleCompare(token,option_info[i].mnemonic) == 0)
02054 {
02055 if (*token == '!')
02056 option_types=option_types &~ option_info[i].type;
02057 else
02058 option_types=option_types | option_info[i].type;
02059 break;
02060 }
02061 }
02062 if (option_info[i].mnemonic == (char *) NULL)
02063 return(-1);
02064 if (list == MagickFalse)
02065 break;
02066 }
02067 return(option_types);
02068 }
02069
02070
02071
02072
02073
02074
02075
02076
02077
02078
02079
02080
02081
02082
02083
02084
02085
02086
02087
02088
02089
02090
02091
02092
02093
02094 MagickExport char *RemoveImageOption(ImageInfo *image_info,const char *option)
02095 {
02096 char
02097 *value;
02098
02099 assert(image_info != (ImageInfo *) NULL);
02100 assert(image_info->signature == MagickSignature);
02101 if (image_info->debug != MagickFalse)
02102 (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
02103 image_info->filename);
02104 if (image_info->options == (void *) NULL)
02105 return((char *) NULL);
02106 value=(char *) RemoveNodeFromSplayTree((SplayTreeInfo *)
02107 image_info->options,option);
02108 return(value);
02109 }
02110
02111
02112
02113
02114
02115
02116
02117
02118
02119
02120
02121
02122
02123
02124
02125
02126
02127
02128
02129
02130
02131
02132
02133
02134
02135 MagickExport void ResetImageOptionIterator(const ImageInfo *image_info)
02136 {
02137 assert(image_info != (ImageInfo *) NULL);
02138 assert(image_info->signature == MagickSignature);
02139 if (image_info->debug != MagickFalse)
02140 (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
02141 image_info->filename);
02142 if (image_info->options == (void *) NULL)
02143 return;
02144 ResetSplayTreeIterator((SplayTreeInfo *) image_info->options);
02145 }
02146
02147
02148
02149
02150
02151
02152
02153
02154
02155
02156
02157
02158
02159
02160
02161
02162
02163
02164
02165
02166
02167
02168
02169
02170
02171
02172
02173
02174 MagickExport MagickBooleanType SetImageOption(ImageInfo *image_info,
02175 const char *option,const char *value)
02176 {
02177 MagickBooleanType
02178 status;
02179
02180 assert(image_info != (ImageInfo *) NULL);
02181 assert(image_info->signature == MagickSignature);
02182 if (image_info->debug != MagickFalse)
02183 (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
02184 image_info->filename);
02185 if (LocaleCompare(option,"size") == 0)
02186 (void) CloneString(&image_info->size,value);
02187 if (image_info->options == (void *) NULL)
02188 image_info->options=NewSplayTree(CompareSplayTreeString,
02189 RelinquishMagickMemory,RelinquishMagickMemory);
02190 status=AddValueToSplayTree((SplayTreeInfo *) image_info->options,
02191 ConstantString(option),ConstantString(value));
02192 return(status);
02193 }