1 // This may look like C code, but it is really -*- C++ -*-
3 // Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002
5 // Inclusion of ImageMagick headers (with namespace magic)
7 #ifndef Magick_Include_header
8 #define Magick_Include_header
10 #if !defined(_MAGICK_CONFIG_H)
11 # define _MAGICK_CONFIG_H
12 # if !defined(vms) && !defined(macintosh)
13 # include "MagickCore/magick-config.h"
15 # include "magick-config.h"
17 # undef inline // Remove possible definition from config.h
21 // Needed for stdio FILE
27 #include <sys/types.h>
29 #if defined(__BORLANDC__)
30 # include <vcl.h> /* Borland C++ Builder 4.0 requirement */
31 #endif // defined(__BORLANDC__)
34 // Include ImageMagick headers into namespace "MagickCore". If
35 // MAGICKCORE_IMPLEMENTATION is defined, include ImageMagick development
36 // headers. This scheme minimizes the possibility of conflict with
41 #include <MagickCore/MagickCore.h>
42 #include <MagickWand/MagickWand.h>
43 #undef inline // Remove possible definition from config.h
49 // Provide appropriate DLL imports/exports for Visual C++,
50 // Borland C++Builder and MinGW builds.
52 #if defined(WIN32) && !defined(__CYGWIN__) && !defined(__MINGW32__)
53 # define MagickCplusPlusDLLSupported
55 #if defined(MagickCplusPlusDLLSupported)
56 # if defined(_MT) && defined(_DLL) && !defined(_LIB) && !defined(STATIC_MAGICK)
58 // In a native Windows build, the following defines are used:
60 // _MT = Multithreaded
61 // _DLL = Using code is part of a DLL
62 // _LIB = Using code is being built as a library.
63 // _MAGICKMOD_ = Build uses loadable modules (Magick++ does not care about this)
65 // In the case where ImageMagick is built as a static library but the
66 // using code is dynamic, STATIC_MAGICK may be defined in the project to
67 // override triggering dynamic library behavior.
69 # if defined(_VISUALC_)
70 # define MagickDLLExplicitTemplate
71 # pragma warning( disable: 4273 ) /* Disable the stupid dll linkage warnings */
72 # pragma warning( disable: 4251 )
74 # if !defined(MAGICKCORE_IMPLEMENTATION)
75 # if defined(__GNUC__)
76 # define MagickPPExport __attribute__ ((dllimport))
78 # define MagickPPExport __declspec(dllimport)
80 # define MagickPPPrivate extern __declspec(dllimport)
81 # if defined(_VISUALC_)
82 # pragma message( "Magick++ lib DLL import" )
85 # if defined(__BORLANDC__) || defined(__MINGW32__)
86 # define MagickPPExport __declspec(dllexport)
87 # define MagickPPPrivate __declspec(dllexport)
88 # if defined(__BORLANDC__)
89 # pragma message( "BCBMagick++ lib DLL export" )
92 # if defined(__GNUC__)
93 # define MagickPPExport __attribute__ ((dllexport))
95 # define MagickPPExport __declspec(dllexport)
97 # define MagickPPPrivate extern __declspec(dllexport)
99 # if defined(_VISUALC_)
100 # pragma message( "Magick++ lib DLL export" )
104 # define MagickPPExport
105 # define MagickPPPrivate
106 # if defined(_VISUALC_)
107 # pragma message( "Magick++ lib static interface" )
109 # if defined(_MSC_VER) && defined(STATIC_MAGICK) && !defined(NOAUTOLINK_MAGICK)
111 # if defined(MAGICKCORE_BZLIB_DELEGATE)
112 # pragma comment(lib, "CORE_DB_bzlib_.lib")
114 # pragma comment(lib, "CORE_DB_coders_.lib")
115 # pragma comment(lib, "CORE_DB_filters_.lib")
116 # if defined(MAGICKCORE_JBIG_DELEGATE)
117 # pragma comment(lib, "CORE_DB_jbig_.lib")
119 # if defined(MAGICKCORE_JP2_DELEGATE)
120 # pragma comment(lib, "CORE_DB_jp2_.lib")
122 # if defined(MAGICKCORE_JPEG_DELEGATE)
123 # pragma comment(lib, "CORE_DB_jpeg_.lib")
125 # if defined(MAGICKCORE_LCMS_DELEGATE)
126 # pragma comment(lib, "CORE_DB_lcms_.lib")
128 # pragma comment(lib, "CORE_DB_libxml_.lib")
129 # pragma comment(lib, "CORE_DB_Magick++_.lib")
130 # pragma comment(lib, "CORE_DB_MagickCore_.lib")
131 # pragma comment(lib, "CORE_DB_MagickWand_.lib")
132 # if defined(MAGICKCORE_PNG_DELEGATE)
133 # pragma comment(lib, "CORE_DB_png_.lib")
135 # if defined(MAGICKCORE_TIFF_DELEGATE)
136 # pragma comment(lib, "CORE_DB_tiff_.lib")
138 # if defined(MAGICKCORE_FREETYPE_DELEGATE)
139 # pragma comment(lib, "CORE_DB_ttf_.lib")
141 # if defined(MAGICKCORE_WEBP_DELEGATE)
142 # pragma comment(lib, "CORE_DB_webp_.lib")
144 # if defined(MAGICKCORE_WMF_DELEGATE)
145 # pragma comment(lib, "CORE_DB_wmf_.lib")
147 # if defined(MAGICKCORE_X11_DELEGATE)
148 # pragma comment(lib, "CORE_DB_xlib_.lib")
150 # if defined(MAGICKCORE_ZLIB_DELEGATE)
151 # pragma comment(lib, "CORE_DB_zlib_.lib")
154 # if defined(MAGICKCORE_BZLIB_DELEGATE)
155 # pragma comment(lib, "CORE_RL_bzlib_.lib")
157 # pragma comment(lib, "CORE_RL_filters_.lib")
158 # pragma comment(lib, "CORE_RL_coders_.lib")
159 # if defined(MAGICKCORE_JBIG_DELEGATE)
160 # pragma comment(lib, "CORE_RL_jbig_.lib")
162 # if defined(MAGICKCORE_JP2_DELEGATE)
163 # pragma comment(lib, "CORE_RL_jp2_.lib")
165 # if defined(MAGICKCORE_JPEG_DELEGATE)
166 # pragma comment(lib, "CORE_RL_jpeg_.lib")
168 # if defined(MAGICKCORE_LCMS_DELEGATE)
169 # pragma comment(lib, "CORE_RL_lcms_.lib")
171 # pragma comment(lib, "CORE_RL_libxml_.lib")
172 # pragma comment(lib, "CORE_RL_Magick++_.lib")
173 # pragma comment(lib, "CORE_RL_MagickCore_.lib")
174 # pragma comment(lib, "CORE_RL_MagickWand_.lib")
175 # if defined(MAGICKCORE_PNG_DELEGATE)
176 # pragma comment(lib, "CORE_RL_png_.lib")
178 # if defined(MAGICKCORE_TIFF_DELEGATE)
179 # pragma comment(lib, "CORE_RL_tiff_.lib")
181 # if defined(MAGICKCORE_FREETYPE_DELEGATE)
182 # pragma comment(lib, "CORE_RL_ttf_.lib")
184 # if defined(MAGICKCORE_WEBP_DELEGATE)
185 # pragma comment(lib, "CORE_RL_webp_.lib")
187 # if defined(MAGICKCORE_WMF_DELEGATE)
188 # pragma comment(lib, "CORE_RL_wmf_.lib")
190 # if defined(MAGICKCORE_X11_DELEGATE)
191 # pragma comment(lib, "CORE_RL_xlib_.lib")
193 # if defined(MAGICKCORE_ZLIB_DELEGATE)
194 # pragma comment(lib, "CORE_RL_zlib_.lib")
197 # if defined(_WIN32_WCE)
198 # pragma comment(lib, "wsock32.lib")
200 # pragma comment(lib, "ws2_32.lib")
206 # define MagickPPExport __attribute__ ((visibility ("default")))
207 # define MagickPPPrivate __attribute__ ((visibility ("hidden")))
209 # define MagickPPExport
210 # define MagickPPPrivate
214 #if defined(WIN32) && defined(_VISUALC_)
215 # pragma warning(disable : 4996) /* function deprecation warnings */
219 // Import ImageMagick symbols and types which are used as part of the
220 // Magick++ API definition into namespace "Magick".
224 // The datatype for an RGB component
225 using MagickCore::Quantum;
226 using MagickCore::MagickRealType;
227 using MagickCore::MagickSizeType;
230 using MagickCore::MagickBooleanType;
231 using MagickCore::MagickFalse;
232 using MagickCore::MagickTrue;
235 using MagickCore::ClassType;
236 using MagickCore::UndefinedClass;
237 using MagickCore::DirectClass;
238 using MagickCore::PseudoClass;
241 using MagickCore::ChannelType;
242 using MagickCore::UndefinedChannel;
243 using MagickCore::AlphaChannel;
244 using MagickCore::RedChannel;
245 using MagickCore::CyanChannel;
246 using MagickCore::GreenChannel;
247 using MagickCore::MagentaChannel;
248 using MagickCore::BlueChannel;
249 using MagickCore::YellowChannel;
250 using MagickCore::AlphaChannel;
251 using MagickCore::BlackChannel;
252 using MagickCore::DefaultChannels;
253 using MagickCore::AllChannels;
256 using MagickCore::ColorspaceType;
258 using MagickCore::UndefinedColorspace;
259 using MagickCore::CMYColorspace;
260 using MagickCore::CMYKColorspace;
261 using MagickCore::GRAYColorspace;
262 using MagickCore::HCLColorspace;
263 using MagickCore::HCLpColorspace;
264 using MagickCore::HSBColorspace;
265 using MagickCore::HSIColorspace;
266 using MagickCore::HSLColorspace;
267 using MagickCore::HSVColorspace;
268 using MagickCore::HWBColorspace;
269 using MagickCore::LabColorspace;
270 using MagickCore::LCHColorspace;
271 using MagickCore::LCHabColorspace;
272 using MagickCore::LCHuvColorspace;
273 using MagickCore::LogColorspace;
274 using MagickCore::LMSColorspace;
275 using MagickCore::LuvColorspace;
276 using MagickCore::OHTAColorspace;
277 using MagickCore::Rec601YCbCrColorspace;
278 using MagickCore::Rec709YCbCrColorspace;
279 using MagickCore::RGBColorspace;
280 using MagickCore::scRGBColorspace;
281 using MagickCore::sRGBColorspace;
282 using MagickCore::TransparentColorspace;
283 using MagickCore::XYZColorspace;
284 using MagickCore::YCbCrColorspace;
285 using MagickCore::YCCColorspace;
286 using MagickCore::YDbDrColorspace;
287 using MagickCore::YIQColorspace;
288 using MagickCore::YPbPrColorspace;
289 using MagickCore::YUVColorspace;
292 using MagickCore::AllCompliance;
294 // Composition operations
295 using MagickCore::AtopCompositeOp;
296 using MagickCore::BlendCompositeOp;
297 using MagickCore::BumpmapCompositeOp;
298 using MagickCore::ClearCompositeOp;
299 using MagickCore::ColorizeCompositeOp;
300 using MagickCore::CompositeOperator;
301 using MagickCore::CopyBlueCompositeOp;
302 using MagickCore::CopyCompositeOp;
303 using MagickCore::CopyCyanCompositeOp;
304 using MagickCore::CopyGreenCompositeOp;
305 using MagickCore::CopyMagentaCompositeOp;
306 using MagickCore::CopyAlphaCompositeOp;
307 using MagickCore::CopyRedCompositeOp;
308 using MagickCore::CopyYellowCompositeOp;
309 using MagickCore::DarkenCompositeOp;
310 using MagickCore::DifferenceCompositeOp;
311 using MagickCore::DisplaceCompositeOp;
312 using MagickCore::DissolveCompositeOp;
313 using MagickCore::DstOverCompositeOp;
314 using MagickCore::ExclusionCompositeOp;
315 using MagickCore::HardLightCompositeOp;
316 using MagickCore::HueCompositeOp;
317 using MagickCore::InCompositeOp;
318 using MagickCore::LightenCompositeOp;
319 using MagickCore::LuminizeCompositeOp;
320 using MagickCore::ModulateCompositeOp;
321 using MagickCore::MultiplyCompositeOp;
322 using MagickCore::NoCompositeOp;
323 using MagickCore::OutCompositeOp;
324 using MagickCore::OverCompositeOp;
325 using MagickCore::OverlayCompositeOp;
326 using MagickCore::PlusCompositeOp;
327 using MagickCore::SaturateCompositeOp;
328 using MagickCore::ScreenCompositeOp;
329 using MagickCore::SoftLightCompositeOp;
330 using MagickCore::ThresholdCompositeOp;
331 using MagickCore::UndefinedCompositeOp;
332 using MagickCore::XorCompositeOp;
333 using MagickCore::CopyBlackCompositeOp;
335 // Compression algorithms
336 using MagickCore::CompressionType;
337 using MagickCore::UndefinedCompression;
338 using MagickCore::NoCompression;
339 using MagickCore::BZipCompression;
340 using MagickCore::FaxCompression;
341 using MagickCore::Group4Compression;
342 using MagickCore::JPEGCompression;
343 using MagickCore::LZMACompression;
344 using MagickCore::LZWCompression;
345 using MagickCore::RLECompression;
346 using MagickCore::ZipCompression;
349 using MagickCore::DisposeType;
350 using MagickCore::UndefinedDispose;
351 using MagickCore::NoneDispose;
352 using MagickCore::BackgroundDispose;
353 using MagickCore::PreviousDispose;
356 using MagickCore::DistortImageMethod;
357 using MagickCore::UndefinedDistortion;
358 using MagickCore::AffineDistortion;
359 using MagickCore::AffineProjectionDistortion;
360 using MagickCore::ScaleRotateTranslateDistortion;
361 using MagickCore::PerspectiveDistortion;
362 using MagickCore::PerspectiveProjectionDistortion;
363 using MagickCore::BilinearDistortion;
364 using MagickCore::PolynomialDistortion;
365 using MagickCore::ArcDistortion;
366 using MagickCore::PolarDistortion;
367 using MagickCore::DePolarDistortion;
368 using MagickCore::BarrelDistortion;
369 using MagickCore::BarrelInverseDistortion;
370 using MagickCore::ShepardsDistortion;
371 using MagickCore::SentinelDistortion;
374 using MagickCore::UndefinedDitherMethod;
375 using MagickCore::NoDitherMethod;
376 using MagickCore::RiemersmaDitherMethod;
377 using MagickCore::FloydSteinbergDitherMethod;
380 using MagickCore::EndianType;
381 using MagickCore::UndefinedEndian;
382 using MagickCore::LSBEndian;
383 using MagickCore::MSBEndian;
386 using MagickCore::UndefinedEvaluateOperator;
387 using MagickCore::AddEvaluateOperator;
388 using MagickCore::AndEvaluateOperator;
389 using MagickCore::DivideEvaluateOperator;
390 using MagickCore::LeftShiftEvaluateOperator;
391 using MagickCore::MaxEvaluateOperator;
392 using MagickCore::MinEvaluateOperator;
393 using MagickCore::MultiplyEvaluateOperator;
394 using MagickCore::OrEvaluateOperator;
395 using MagickCore::RightShiftEvaluateOperator;
396 using MagickCore::SetEvaluateOperator;
397 using MagickCore::SubtractEvaluateOperator;
398 using MagickCore::XorEvaluateOperator;
399 using MagickCore::MagickEvaluateOperator;
402 using MagickCore::FillRule;
403 using MagickCore::UndefinedRule;
404 using MagickCore::EvenOddRule;
405 using MagickCore::NonZeroRule;
408 using MagickCore::FilterTypes;
409 using MagickCore::UndefinedFilter;
410 using MagickCore::PointFilter;
411 using MagickCore::BoxFilter;
412 using MagickCore::TriangleFilter;
413 using MagickCore::HermiteFilter;
414 using MagickCore::HanningFilter;
415 using MagickCore::HammingFilter;
416 using MagickCore::BlackmanFilter;
417 using MagickCore::GaussianFilter;
418 using MagickCore::QuadraticFilter;
419 using MagickCore::CubicFilter;
420 using MagickCore::CatromFilter;
421 using MagickCore::MitchellFilter;
422 using MagickCore::JincFilter;
423 using MagickCore::SincFilter;
424 using MagickCore::SincFastFilter;
425 using MagickCore::KaiserFilter;
426 using MagickCore::WelshFilter;
427 using MagickCore::ParzenFilter;
428 using MagickCore::BohmanFilter;
429 using MagickCore::BartlettFilter;
430 using MagickCore::LagrangeFilter;
431 using MagickCore::LanczosFilter;
432 using MagickCore::LanczosSharpFilter;
433 using MagickCore::Lanczos2Filter;
434 using MagickCore::Lanczos2SharpFilter;
435 using MagickCore::RobidouxFilter;
436 using MagickCore::SentinelFilter;
439 using MagickCore::GravityType;
440 using MagickCore::ForgetGravity;
441 using MagickCore::NorthWestGravity;
442 using MagickCore::NorthGravity;
443 using MagickCore::NorthEastGravity;
444 using MagickCore::WestGravity;
445 using MagickCore::CenterGravity;
446 using MagickCore::EastGravity;
447 using MagickCore::SouthWestGravity;
448 using MagickCore::SouthGravity;
449 using MagickCore::SouthEastGravity;
452 using MagickCore::ImageType;
453 using MagickCore::UndefinedType;
454 using MagickCore::BilevelType;
455 using MagickCore::GrayscaleType;
456 using MagickCore::GrayscaleMatteType;
457 using MagickCore::PaletteType;
458 using MagickCore::PaletteMatteType;
459 using MagickCore::TrueColorType;
460 using MagickCore::TrueColorMatteType;
461 using MagickCore::ColorSeparationType;
462 using MagickCore::ColorSeparationMatteType;
463 using MagickCore::OptimizeType;
466 using MagickCore::InterlaceType;
467 using MagickCore::UndefinedInterlace;
468 using MagickCore::NoInterlace;
469 using MagickCore::LineInterlace;
470 using MagickCore::PlaneInterlace;
471 using MagickCore::PartitionInterlace;
474 using MagickCore::LayerMethod;
475 using MagickCore::UndefinedLayer;
476 using MagickCore::CoalesceLayer;
477 using MagickCore::CompareAnyLayer;
478 using MagickCore::CompareClearLayer;
479 using MagickCore::CompareOverlayLayer;
480 using MagickCore::DisposeLayer;
481 using MagickCore::OptimizeLayer;
482 using MagickCore::OptimizeImageLayer;
483 using MagickCore::OptimizePlusLayer;
484 using MagickCore::OptimizeTransLayer;
485 using MagickCore::RemoveDupsLayer;
486 using MagickCore::RemoveZeroLayer;
487 using MagickCore::CompositeLayer;
488 using MagickCore::MergeLayer;
489 using MagickCore::FlattenLayer;
490 using MagickCore::MosaicLayer;
491 using MagickCore::TrimBoundsLayer;
494 using MagickCore::LineCap;
495 using MagickCore::UndefinedCap;
496 using MagickCore::ButtCap;
497 using MagickCore::RoundCap;
498 using MagickCore::SquareCap;
501 using MagickCore::LineJoin;
502 using MagickCore::UndefinedJoin;
503 using MagickCore::MiterJoin;
504 using MagickCore::RoundJoin;
505 using MagickCore::BevelJoin;
508 using MagickCore::NoiseType;
509 using MagickCore::UniformNoise;
510 using MagickCore::GaussianNoise;
511 using MagickCore::MultiplicativeGaussianNoise;
512 using MagickCore::ImpulseNoise;
513 using MagickCore::LaplacianNoise;
514 using MagickCore::PoissonNoise;
517 using MagickCore::OrientationType;
518 using MagickCore::UndefinedOrientation;
519 using MagickCore::TopLeftOrientation;
520 using MagickCore::TopRightOrientation;
521 using MagickCore::BottomRightOrientation;
522 using MagickCore::BottomLeftOrientation;
523 using MagickCore::LeftTopOrientation;
524 using MagickCore::RightTopOrientation;
525 using MagickCore::RightBottomOrientation;
526 using MagickCore::LeftBottomOrientation;
529 using MagickCore::PaintMethod;
530 using MagickCore::PointMethod;
531 using MagickCore::ReplaceMethod;
532 using MagickCore::FloodfillMethod;
533 using MagickCore::FillToBorderMethod;
534 using MagickCore::ResetMethod;
537 using MagickCore::UndefinedPixelTrait;
538 using MagickCore::BlendPixelTrait;
540 // Preview types. Not currently used by Magick++
541 using MagickCore::PreviewType;
542 using MagickCore::UndefinedPreview;
543 using MagickCore::RotatePreview;
544 using MagickCore::ShearPreview;
545 using MagickCore::RollPreview;
546 using MagickCore::HuePreview;
547 using MagickCore::SaturationPreview;
548 using MagickCore::BrightnessPreview;
549 using MagickCore::GammaPreview;
550 using MagickCore::SpiffPreview;
551 using MagickCore::DullPreview;
552 using MagickCore::GrayscalePreview;
553 using MagickCore::QuantizePreview;
554 using MagickCore::DespecklePreview;
555 using MagickCore::ReduceNoisePreview;
556 using MagickCore::AddNoisePreview;
557 using MagickCore::SharpenPreview;
558 using MagickCore::BlurPreview;
559 using MagickCore::ThresholdPreview;
560 using MagickCore::EdgeDetectPreview;
561 using MagickCore::SpreadPreview;
562 using MagickCore::SolarizePreview;
563 using MagickCore::ShadePreview;
564 using MagickCore::RaisePreview;
565 using MagickCore::SegmentPreview;
566 using MagickCore::SwirlPreview;
567 using MagickCore::ImplodePreview;
568 using MagickCore::WavePreview;
569 using MagickCore::OilPaintPreview;
570 using MagickCore::CharcoalDrawingPreview;
571 using MagickCore::JPEGPreview;
574 using MagickCore::QuantumType;
575 using MagickCore::IndexQuantum;
576 using MagickCore::GrayQuantum;
577 using MagickCore::IndexAlphaQuantum;
578 using MagickCore::GrayAlphaQuantum;
579 using MagickCore::RedQuantum;
580 using MagickCore::CyanQuantum;
581 using MagickCore::GreenQuantum;
582 using MagickCore::YellowQuantum;
583 using MagickCore::BlueQuantum;
584 using MagickCore::MagentaQuantum;
585 using MagickCore::AlphaQuantum;
586 using MagickCore::BlackQuantum;
587 using MagickCore::RGBQuantum;
588 using MagickCore::RGBAQuantum;
589 using MagickCore::CMYKQuantum;
592 using MagickCore::RenderingIntent;
593 using MagickCore::UndefinedIntent;
594 using MagickCore::SaturationIntent;
595 using MagickCore::PerceptualIntent;
596 using MagickCore::AbsoluteIntent;
597 using MagickCore::RelativeIntent;
600 using MagickCore::MemoryResource;
603 using MagickCore::ResolutionType;
604 using MagickCore::UndefinedResolution;
605 using MagickCore::PixelsPerInchResolution;
606 using MagickCore::PixelsPerCentimeterResolution;
608 // PixelInfo structure
609 using MagickCore::PixelInfo;
610 using MagickCore::Quantum;
612 // Sparse Color methods
613 using MagickCore::SparseColorMethod;
614 using MagickCore::UndefinedColorInterpolate;
615 using MagickCore::BarycentricColorInterpolate;
616 using MagickCore::BilinearColorInterpolate;
617 using MagickCore::PolynomialColorInterpolate;
618 using MagickCore::ShepardsColorInterpolate;
619 using MagickCore::VoronoiColorInterpolate;
622 using MagickCore::MedianStatistic;
623 using MagickCore::NonpeakStatistic;
626 using MagickCore::StorageType;
627 using MagickCore::CharPixel;
628 using MagickCore::ShortPixel;
629 using MagickCore::LongLongPixel;
630 using MagickCore::FloatPixel;
631 using MagickCore::DoublePixel;
634 using MagickCore::StretchType;
635 using MagickCore::NormalStretch;
636 using MagickCore::UltraCondensedStretch;
637 using MagickCore::ExtraCondensedStretch;
638 using MagickCore::CondensedStretch;
639 using MagickCore::SemiCondensedStretch;
640 using MagickCore::SemiExpandedStretch;
641 using MagickCore::ExpandedStretch;
642 using MagickCore::ExtraExpandedStretch;
643 using MagickCore::UltraExpandedStretch;
644 using MagickCore::AnyStretch;
647 using MagickCore::StyleType;
648 using MagickCore::NormalStyle;
649 using MagickCore::ItalicStyle;
650 using MagickCore::ObliqueStyle;
651 using MagickCore::AnyStyle;
654 using MagickCore::DecorationType;
655 using MagickCore::NoDecoration;
656 using MagickCore::UnderlineDecoration;
657 using MagickCore::OverlineDecoration;
658 using MagickCore::LineThroughDecoration;
660 // Virtual pixel methods
661 using MagickCore::VirtualPixelMethod;
662 using MagickCore::UndefinedVirtualPixelMethod;
663 using MagickCore::BackgroundVirtualPixelMethod;
664 using MagickCore::DitherVirtualPixelMethod;
665 using MagickCore::EdgeVirtualPixelMethod;
666 using MagickCore::MirrorVirtualPixelMethod;
667 using MagickCore::RandomVirtualPixelMethod;
668 using MagickCore::TileVirtualPixelMethod;
669 using MagickCore::TransparentVirtualPixelMethod;
670 using MagickCore::MaskVirtualPixelMethod;
671 using MagickCore::BlackVirtualPixelMethod;
672 using MagickCore::GrayVirtualPixelMethod;
673 using MagickCore::WhiteVirtualPixelMethod;
674 using MagickCore::HorizontalTileVirtualPixelMethod;
675 using MagickCore::VerticalTileVirtualPixelMethod;
676 using MagickCore::HorizontalTileEdgeVirtualPixelMethod;
677 using MagickCore::VerticalTileEdgeVirtualPixelMethod;
678 using MagickCore::CheckerTileVirtualPixelMethod;
680 #if defined(MAGICKCORE_IMPLEMENTATION)
682 // ImageMagick symbols used in implementation code
684 using MagickCore::AcquireAlignedMemory;
685 using MagickCore::AcquireAuthenticCacheView;
686 using MagickCore::AcquireExceptionInfo;
687 using MagickCore::AcquireVirtualCacheView;
688 using MagickCore::GetCacheViewVirtualPixels;
689 using MagickCore::AcquireImage;
690 using MagickCore::AreaValue;
691 using MagickCore::GetVirtualPixels;
692 using MagickCore::AcquireKernelInfo;
693 using MagickCore::AcquireMagickMemory;
694 using MagickCore::AcquireQuantumInfo;
695 using MagickCore::AcquireString;
696 using MagickCore::AcquireStringInfo;
697 using MagickCore::AdaptiveBlurImage;
698 using MagickCore::AdaptiveResizeImage;
699 using MagickCore::AdaptiveSharpenImage;
700 using MagickCore::AdaptiveSharpenImageChannel;
701 using MagickCore::AdaptiveThresholdImage;
702 using MagickCore::AddNoiseImage;
703 using MagickCore::AffineMatrix;
704 using MagickCore::AffineTransformImage;
705 using MagickCore::AnnotateImage;
706 using MagickCore::AspectValue;
707 using MagickCore::Base64Decode;
708 using MagickCore::Base64Encode;
709 using MagickCore::BilevelImage;
710 using MagickCore::BlobError;
711 using MagickCore::BlobFatalError;
712 using MagickCore::BlobToImage;
713 using MagickCore::BlobWarning;
714 using MagickCore::BlurImage;
715 using MagickCore::BorderImage;
716 using MagickCore::CacheError;
717 using MagickCore::CacheFatalError;
718 using MagickCore::CacheWarning;
719 using MagickCore::CharcoalImage;
720 using MagickCore::ChopImage;
721 using MagickCore::ClearMagickException;
722 using MagickCore::ClampToQuantum;
723 using MagickCore::CloneDrawInfo;
724 using MagickCore::CloneImage;
725 using MagickCore::CloneImageInfo;
726 using MagickCore::CloneQuantizeInfo;
727 using MagickCore::CoderError;
728 using MagickCore::CoderFatalError;
729 using MagickCore::CoderWarning;
730 using MagickCore::ColorDecisionListImage;
731 using MagickCore::ColorizeImage;
732 using MagickCore::ColorMatrixImage;
733 using MagickCore::CompositeImage;
734 using MagickCore::ConfigureError;
735 using MagickCore::ConfigureFatalError;
736 using MagickCore::ConfigureWarning;
737 using MagickCore::ConstituteImage;
738 using MagickCore::ContrastImage;
739 using MagickCore::ConvertHSLToRGB;
740 using MagickCore::ConvertRGBToHSL;
741 using MagickCore::ConvolveImage;
742 using MagickCore::CopyMagickString;
743 using MagickCore::CorruptImageError;
744 using MagickCore::CorruptImageFatalError;
745 using MagickCore::CorruptImageWarning;
746 using MagickCore::CropImage;
747 using MagickCore::CycleColormapImage;
748 using MagickCore::DelegateError;
749 using MagickCore::DelegateFatalError;
750 using MagickCore::DelegateWarning;
751 using MagickCore::DeleteImageOption;
752 using MagickCore::DeleteImageRegistry;
753 using MagickCore::DespeckleImage;
754 using MagickCore::DestroyCacheView;
755 using MagickCore::DestroyDrawInfo;
756 using MagickCore::DestroyDrawingWand;
757 using MagickCore::DestroyExceptionInfo;
758 using MagickCore::DestroyImageInfo;
759 using MagickCore::DestroyImageList;
760 using MagickCore::DestroyKernelInfo;
761 using MagickCore::DestroyMagickWand;
762 using MagickCore::DestroyPixelWand;
763 using MagickCore::DestroyQuantizeInfo;
764 using MagickCore::DestroyQuantumInfo;
765 using MagickCore::DestroyStringInfo;
766 using MagickCore::DisplayImages;
767 using MagickCore::DistortImage;
768 using MagickCore::DrawAffine;
769 using MagickCore::DrawAllocateWand;
770 using MagickCore::DrawAnnotation;
771 using MagickCore::DrawArc;
772 using MagickCore::DrawBezier;
773 using MagickCore::DrawCircle;
774 using MagickCore::DrawColor;
775 using MagickCore::DrawComment;
776 using MagickCore::DrawComposite;
777 using MagickCore::DrawEllipse;
778 using MagickCore::DrawError;
779 using MagickCore::DrawFatalError;
780 using MagickCore::DrawImage;
781 using MagickCore::DrawInfo;
782 using MagickCore::DrawingWand;
783 using MagickCore::DrawLine;
784 using MagickCore::DrawMatte;
785 using MagickCore::DrawPathClose;
786 using MagickCore::DrawPathCurveToAbsolute;
787 using MagickCore::DrawPathCurveToQuadraticBezierAbsolute;
788 using MagickCore::DrawPathCurveToQuadraticBezierRelative;
789 using MagickCore::DrawPathCurveToQuadraticBezierSmoothAbsolute;
790 using MagickCore::DrawPathCurveToQuadraticBezierSmoothRelative;
791 using MagickCore::DrawPathCurveToRelative;
792 using MagickCore::DrawPathCurveToSmoothAbsolute;
793 using MagickCore::DrawPathCurveToSmoothRelative;
794 using MagickCore::DrawPathEllipticArcAbsolute;
795 using MagickCore::DrawPathEllipticArcRelative;
796 using MagickCore::DrawPathFinish;
797 using MagickCore::DrawPathLineToAbsolute;
798 using MagickCore::DrawPathLineToHorizontalAbsolute;
799 using MagickCore::DrawPathLineToHorizontalRelative;
800 using MagickCore::DrawPathLineToRelative;
801 using MagickCore::DrawPathLineToVerticalAbsolute;
802 using MagickCore::DrawPathLineToVerticalRelative;
803 using MagickCore::DrawPathMoveToAbsolute;
804 using MagickCore::DrawPathMoveToRelative;
805 using MagickCore::DrawPathStart;
806 using MagickCore::DrawPoint;
807 using MagickCore::DrawPolygon;
808 using MagickCore::DrawPolyline;
809 using MagickCore::DrawPopClipPath;
810 using MagickCore::DrawPopDefs;
811 using MagickCore::DrawPopPattern;
812 using MagickCore::DrawPushClipPath;
813 using MagickCore::DrawPushDefs;
814 using MagickCore::DrawPushPattern;
815 using MagickCore::DrawRectangle;
816 using MagickCore::DrawRender;
817 using MagickCore::DrawRotate;
818 using MagickCore::DrawRoundRectangle;
819 using MagickCore::DrawScale;
820 using MagickCore::DrawSetClipPath;
821 using MagickCore::DrawSetClipRule;
822 using MagickCore::DrawSetClipUnits;
823 using MagickCore::DrawSetFillColor;
824 using MagickCore::DrawSetFillAlpha;
825 using MagickCore::DrawSetFillPatternURL;
826 using MagickCore::DrawSetFillRule;
827 using MagickCore::DrawSetFont;
828 using MagickCore::DrawSetFontFamily;
829 using MagickCore::DrawSetFontSize;
830 using MagickCore::DrawSetFontStretch;
831 using MagickCore::DrawSetFontStyle;
832 using MagickCore::DrawSetFontWeight;
833 using MagickCore::DrawSetGravity;
834 using MagickCore::DrawSetStrokeAntialias;
835 using MagickCore::DrawSetStrokeColor;
836 using MagickCore::DrawSetStrokeDashArray;
837 using MagickCore::DrawSetStrokeDashOffset;
838 using MagickCore::DrawSetStrokeLineCap;
839 using MagickCore::DrawSetStrokeLineJoin;
840 using MagickCore::DrawSetStrokeMiterLimit;
841 using MagickCore::DrawSetStrokeAlpha;
842 using MagickCore::DrawSetStrokePatternURL;
843 using MagickCore::DrawSetStrokeWidth;
844 using MagickCore::DrawSetTextAntialias;
845 using MagickCore::DrawSetTextDecoration;
846 using MagickCore::DrawSetTextEncoding;
847 using MagickCore::DrawSetTextUnderColor;
848 using MagickCore::DrawSetViewbox;
849 using MagickCore::DrawSkewX;
850 using MagickCore::DrawSkewY;
851 using MagickCore::DrawTranslate;
852 using MagickCore::DrawWarning;
853 using MagickCore::EdgeImage;
854 using MagickCore::EmbossImage;
855 using MagickCore::EnhanceImage;
856 using MagickCore::EqualizeImage;
857 using MagickCore::EvaluateImage;
858 using MagickCore::ExceptionInfo;
859 using MagickCore::ExceptionType;
860 using MagickCore::ExportImagePixels;
861 using MagickCore::ExportQuantumPixels;
862 using MagickCore::ExtentImage;
863 using MagickCore::FileOpenError;
864 using MagickCore::FileOpenFatalError;
865 using MagickCore::FileOpenWarning;
866 using MagickCore::FlipImage;
867 using MagickCore::FloodfillPaintImage;
868 using MagickCore::FlopImage;
869 using MagickCore::FormatLocaleString;
870 using MagickCore::ForwardFourierTransformImage;
871 using MagickCore::FrameImage;
872 using MagickCore::FrameInfo;
873 using MagickCore::FxImage;
874 using MagickCore::GammaImage;
875 using MagickCore::GaussianBlurImage;
876 using MagickCore::GaussianBlurImage;
877 using MagickCore::GetAffineMatrix;
878 using MagickCore::GetAuthenticMetacontent;
879 using MagickCore::GetBlobSize;
880 using MagickCore::GetCacheViewAuthenticMetacontent;
881 using MagickCore::GetCacheViewAuthenticPixels;
882 using MagickCore::GetColorTuple;
883 using MagickCore::GetDrawInfo;
884 using MagickCore::GetExceptionInfo;
885 using MagickCore::GetGeometry;
886 using MagickCore::GetImageBoundingBox;
887 using MagickCore::GetImageDepth;
888 using MagickCore::GetImageMask;
889 using MagickCore::GetImageMean;
890 using MagickCore::GetImageKurtosis;
891 using MagickCore::GetImageRange;
892 using MagickCore::GetImageDepth;
893 using MagickCore::GetImageInfo;
894 using MagickCore::GetImageInfoFile;
895 using MagickCore::GetImageOption;
896 using MagickCore::GetAuthenticPixels;
897 using MagickCore::GetImageProfile;
898 using MagickCore::GetImageProperty;
899 using MagickCore::GetImageQuantizeError;
900 using MagickCore::GetImageType;
901 using MagickCore::GetMagickInfo;
902 using MagickCore::GetPixelBlue;
903 using MagickCore::GetPixelGreen;
904 using MagickCore::GetPixelInfo;
905 using MagickCore::GetPixelRed;
906 using MagickCore::GetNumberColors;
907 using MagickCore::GetPageGeometry;
908 using MagickCore::GetQuantizeInfo;
909 using MagickCore::GetStringInfoDatum;
910 using MagickCore::GetStringInfoLength;
911 using MagickCore::GetTypeMetrics;
912 using MagickCore::GetVirtualMetacontent;
913 using MagickCore::GetImageVirtualPixelMethod;
914 using MagickCore::GlobExpression;
915 using MagickCore::GravityAdjustGeometry;
916 using MagickCore::GreaterValue;
917 using MagickCore::HaldClutImage;
918 using MagickCore::HeightValue;
919 using MagickCore::ImageError;
920 using MagickCore::ImageFatalError;
921 using MagickCore::ImageInfo;
922 using MagickCore::ImageRegistryType;
923 using MagickCore::ImageToBlob;
924 using MagickCore::ImagesToBlob;
925 using MagickCore::ImageWarning;
926 using MagickCore::ImplodeImage;
927 using MagickCore::ImportQuantumPixels;
928 using MagickCore::InverseFourierTransformImage;
929 using MagickCore::InvokeDynamicImageFilter;
930 using MagickCore::IsEventLogging;
931 using MagickCore::IsGeometry;
932 using MagickCore::IsImagesEqual;
933 using MagickCore::KernelInfo;
934 using MagickCore::LessValue;
935 using MagickCore::LevelImage;
936 using MagickCore::LocaleCompare;
937 using MagickCore::LogMagickEvent;
938 using MagickCore::MagickCoreTerminus;
939 using MagickCore::MagickInfo;
940 using MagickCore::PixelInfo;
941 using MagickCore::MagickToMime;
942 using MagickCore::MagickWand;
943 using MagickCore::MagnifyImage;
944 using MagickCore::MergeImageLayers;
945 using MagickCore::MinifyImage;
946 using MagickCore::MinimumValue;
947 using MagickCore::MissingDelegateError;
948 using MagickCore::MissingDelegateFatalError;
949 using MagickCore::MissingDelegateWarning;
950 using MagickCore::ModulateImage;
951 using MagickCore::ModuleError;
952 using MagickCore::ModuleFatalError;
953 using MagickCore::ModuleWarning;
954 using MagickCore::MonitorError;
955 using MagickCore::MonitorFatalError;
956 using MagickCore::MonitorWarning;
957 using MagickCore::MontageInfo;
958 using MagickCore::MotionBlurImage;
959 using MagickCore::NegateImage;
960 using MagickCore::NewMagickWandFromImage;
961 using MagickCore::NewPixelWand;
962 using MagickCore::NoiseType;
963 using MagickCore::NormalizeImage;
964 using MagickCore::NoValue;
965 using MagickCore::OilPaintImage;
966 using MagickCore::OpaquePaintImage;
967 using MagickCore::OptionError;
968 using MagickCore::OptionFatalError;
969 using MagickCore::OptionWarning;
970 using MagickCore::ParseMetaGeometry;
971 using MagickCore::PercentValue;
972 using MagickCore::PingBlob;
973 using MagickCore::PingImage;
974 using MagickCore::PixelSetPixelColor;
975 using MagickCore::PixelWand;
976 using MagickCore::PointInfo;
977 using MagickCore::PopDrawingWand;
978 using MagickCore::ProfileImage;
979 using MagickCore::ProfileInfo;
980 using MagickCore::PushDrawingWand;
981 using MagickCore::QuantizeImage;
982 using MagickCore::QuantizeInfo;
983 using MagickCore::QuantumInfo;
984 using MagickCore::QueueAuthenticPixels;
985 using MagickCore::QueueCacheViewAuthenticPixels;
986 using MagickCore::RaiseImage;
987 using MagickCore::RandomThresholdImage;
988 using MagickCore::ReadImage;
989 using MagickCore::RectangleInfo;
990 using MagickCore::RegisterMagickInfo;
991 using MagickCore::RegistryError;
992 using MagickCore::RegistryFatalError;
993 using MagickCore::RegistryType;
994 using MagickCore::RegistryWarning;
995 using MagickCore::RelinquishMagickMemory;
996 using MagickCore::RemapImage;
997 using MagickCore::ResizeImage;
998 using MagickCore::ResizeMagickMemory;
999 using MagickCore::ResourceLimitError;
1000 using MagickCore::ResourceLimitFatalError;
1001 using MagickCore::ResourceLimitWarning;
1002 using MagickCore::RollImage;
1003 using MagickCore::RotateImage;
1004 using MagickCore::SampleImage;
1005 using MagickCore::ScaleImage;
1006 using MagickCore::SegmentImage;
1007 using MagickCore::SeparateImage;
1008 using MagickCore::SetClientName;
1009 using MagickCore::SetGeometry;
1010 using MagickCore::SetImageAlpha;
1011 using MagickCore::SetImageBackgroundColor;
1012 using MagickCore::SetImageDepth;
1013 using MagickCore::SetImageExtent;
1014 using MagickCore::SetImageInfo;
1015 using MagickCore::SetImageInfoFile;
1016 using MagickCore::SetImageMask;
1017 using MagickCore::SetImageOption;
1018 using MagickCore::SetImageProfile;
1019 using MagickCore::SetImageProperty;
1020 using MagickCore::SetImageRegistry;
1021 using MagickCore::SetImageType;
1022 using MagickCore::SetLogEventMask;
1023 using MagickCore::SetMagickInfo;
1024 using MagickCore::SetMagickResourceLimit;
1025 using MagickCore::SetImageVirtualPixelMethod;
1026 using MagickCore::SetPixelChannel;
1027 using MagickCore::SetImageChannelMask;
1028 using MagickCore::SetStringInfoDatum;
1029 using MagickCore::ShadeImage;
1030 using MagickCore::ShadowImage;
1031 using MagickCore::SharpenImage;
1032 using MagickCore::SharpenImage;
1033 using MagickCore::ShaveImage;
1034 using MagickCore::ShearImage;
1035 using MagickCore::SigmoidalContrastImage;
1036 using MagickCore::SignatureImage;
1037 using MagickCore::SolarizeImage;
1038 using MagickCore::SparseColorImage;
1039 using MagickCore::SpliceImage;
1040 using MagickCore::SpreadImage;
1041 using MagickCore::StatisticImage;
1042 using MagickCore::SteganoImage;
1043 using MagickCore::StereoImage;
1044 using MagickCore::StreamError;
1045 using MagickCore::StreamFatalError;
1046 using MagickCore::StreamWarning;
1047 using MagickCore::StringInfo;
1048 using MagickCore::StripImage;
1049 using MagickCore::SwirlImage;
1050 using MagickCore::SyncCacheViewAuthenticPixels;
1051 using MagickCore::SyncImage;
1052 using MagickCore::SyncAuthenticPixels;
1053 using MagickCore::TextureImage;
1054 using MagickCore::ThrowException;
1055 using MagickCore::TransformImage;
1056 using MagickCore::TransformImageColorspace;
1057 using MagickCore::TransparentPaintImage;
1058 using MagickCore::TransparentPaintImageChroma;
1059 using MagickCore::TrimImage;
1060 using MagickCore::TypeError;
1061 using MagickCore::TypeFatalError;
1062 using MagickCore::TypeWarning;
1063 using MagickCore::UndefinedException;
1064 using MagickCore::UndefinedRegistryType;
1065 using MagickCore::UnregisterMagickInfo;
1066 using MagickCore::UnsharpMaskImage;
1067 using MagickCore::CacheView;
1068 using MagickCore::WaveImage;
1069 using MagickCore::WidthValue;
1070 using MagickCore::WriteImage;
1071 using MagickCore::XNegative;
1072 using MagickCore::XServerError;
1073 using MagickCore::XServerFatalError;
1074 using MagickCore::XServerWarning;
1075 using MagickCore::XValue;
1076 using MagickCore::YNegative;
1077 using MagickCore::YValue;
1079 #endif // MAGICKCORE_IMPLEMENTATION
1083 #endif // Magick_Include_header