]> granicus.if.org Git - imagemagick/blob - Magick++/lib/Magick++/Include.h
Added adaptive resize/sharpen to Magick++.
[imagemagick] / Magick++ / lib / Magick++ / Include.h
1 // This may look like C code, but it is really -*- C++ -*-
2 //
3 // Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002
4 //
5 // Inclusion of ImageMagick headers (with namespace magic)
6
7 #ifndef Magick_Include_header
8 #define Magick_Include_header
9
10 #if !defined(_MAGICK_CONFIG_H)
11 # define _MAGICK_CONFIG_H
12 # if !defined(vms) && !defined(macintosh)
13 #  include "MagickCore/magick-config.h"
14 # else
15 #  include "magick-config.h"
16 # endif
17 # undef inline // Remove possible definition from config.h
18 # undef class
19 #endif
20
21 // Needed for stdio FILE
22 #include <stdio.h>
23 #include <stdarg.h>
24 #include <stdlib.h>
25 #include <time.h>
26 #include <math.h>
27 #include <sys/types.h>
28
29 #if defined(__BORLANDC__)
30 # include <vcl.h> /* Borland C++ Builder 4.0 requirement */
31 #endif // defined(__BORLANDC__)
32
33 //
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
37 // user code.
38 //
39 namespace MagickCore
40 {
41 #include <MagickCore/MagickCore.h>
42 #include <MagickWand/MagickWand.h>
43 #undef inline // Remove possible definition from config.h
44
45 #undef class
46 }
47
48 //
49 // Provide appropriate DLL imports/exports for Visual C++,
50 // Borland C++Builder and MinGW builds.
51 //
52 #if defined(WIN32) && !defined(__CYGWIN__) && !defined(__MINGW32__)
53 # define MagickCplusPlusDLLSupported
54 #endif
55 #if defined(MagickCplusPlusDLLSupported)
56 #  if defined(_MT) && defined(_DLL) && !defined(_LIB) && !defined(STATIC_MAGICK)
57 //
58 // In a native Windows build, the following defines are used:
59 //
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)
64 //
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.
68 //
69 #    if defined(_VISUALC_)
70 #      define MagickDLLExplicitTemplate
71 #      pragma warning( disable: 4273 )  /* Disable the stupid dll linkage warnings */
72 #      pragma warning( disable: 4251 )
73 #    endif
74 #    if !defined(MAGICKCORE_IMPLEMENTATION)
75 #      if defined(__GNUC__)
76 #       define MagickPPExport __attribute__ ((dllimport))
77 #      else
78 #       define MagickPPExport __declspec(dllimport)
79 #      endif
80 #      define MagickPPPrivate extern __declspec(dllimport)
81 #      if defined(_VISUALC_)
82 #        pragma message( "Magick++ lib DLL import" )
83 #      endif
84 #    else
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" )
90 #        endif
91 #      else
92 #        if defined(__GNUC__)
93 #         define MagickPPExport __attribute__ ((dllexport))
94 #        else
95 #         define MagickPPExport __declspec(dllexport)
96 #        endif
97 #        define MagickPPPrivate extern __declspec(dllexport)
98 #      endif
99 #      if defined(_VISUALC_)
100 #        pragma message( "Magick++ lib DLL export" )
101 #      endif
102 #    endif
103 #  else
104 #    define MagickPPExport
105 #    define MagickPPPrivate
106 #    if defined(_VISUALC_)
107 #      pragma message( "Magick++ lib static interface" )
108 #    endif
109 #    if defined(_MSC_VER) && defined(STATIC_MAGICK) && !defined(NOAUTOLINK_MAGICK)
110 #      if defined(_DEBUG)
111 #        if defined(MAGICKCORE_BZLIB_DELEGATE)
112 #          pragma comment(lib, "CORE_DB_bzlib_.lib")
113 #        endif
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")
118 #        endif
119 #        if defined(MAGICKCORE_JP2_DELEGATE)
120 #          pragma comment(lib, "CORE_DB_jp2_.lib")
121 #        endif
122 #        if defined(MAGICKCORE_JPEG_DELEGATE)
123 #          pragma comment(lib, "CORE_DB_jpeg_.lib")
124 #        endif
125 #        if defined(MAGICKCORE_LCMS_DELEGATE)
126 #          pragma comment(lib, "CORE_DB_lcms_.lib")
127 #        endif
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")
134 #        endif
135 #        if defined(MAGICKCORE_TIFF_DELEGATE)
136 #          pragma comment(lib, "CORE_DB_tiff_.lib")
137 #        endif
138 #        if defined(MAGICKCORE_FREETYPE_DELEGATE)
139 #          pragma comment(lib, "CORE_DB_ttf_.lib")
140 #        endif
141 #        if defined(MAGICKCORE_WEBP_DELEGATE)
142 #          pragma comment(lib, "CORE_DB_webp_.lib")
143 #        endif
144 #        if defined(MAGICKCORE_WMF_DELEGATE)
145 #          pragma comment(lib, "CORE_DB_wmf_.lib")
146 #        endif
147 #        if defined(MAGICKCORE_X11_DELEGATE)
148 #          pragma comment(lib, "CORE_DB_xlib_.lib")
149 #        endif
150 #        if defined(MAGICKCORE_ZLIB_DELEGATE)
151 #          pragma comment(lib, "CORE_DB_zlib_.lib")
152 #        endif
153 #      else
154 #        if defined(MAGICKCORE_BZLIB_DELEGATE)
155 #          pragma comment(lib, "CORE_RL_bzlib_.lib")
156 #        endif
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")
161 #        endif
162 #        if defined(MAGICKCORE_JP2_DELEGATE)
163 #          pragma comment(lib, "CORE_RL_jp2_.lib")
164 #        endif
165 #        if defined(MAGICKCORE_JPEG_DELEGATE)
166 #          pragma comment(lib, "CORE_RL_jpeg_.lib")
167 #        endif
168 #        if defined(MAGICKCORE_LCMS_DELEGATE)
169 #          pragma comment(lib, "CORE_RL_lcms_.lib")
170 #        endif
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")
177 #        endif
178 #        if defined(MAGICKCORE_TIFF_DELEGATE)
179 #          pragma comment(lib, "CORE_RL_tiff_.lib")
180 #        endif
181 #        if defined(MAGICKCORE_FREETYPE_DELEGATE)
182 #          pragma comment(lib, "CORE_RL_ttf_.lib")
183 #        endif
184 #        if defined(MAGICKCORE_WEBP_DELEGATE)
185 #          pragma comment(lib, "CORE_RL_webp_.lib")
186 #        endif
187 #        if defined(MAGICKCORE_WMF_DELEGATE)
188 #          pragma comment(lib, "CORE_RL_wmf_.lib")
189 #        endif
190 #        if defined(MAGICKCORE_X11_DELEGATE)
191 #          pragma comment(lib, "CORE_RL_xlib_.lib")
192 #        endif
193 #        if defined(MAGICKCORE_ZLIB_DELEGATE)
194 #          pragma comment(lib, "CORE_RL_zlib_.lib")
195 #        endif
196 #      endif
197 #      if defined(_WIN32_WCE)
198 #        pragma comment(lib, "wsock32.lib")
199 #      else
200 #        pragma comment(lib, "ws2_32.lib")
201 #      endif
202 #    endif
203 #  endif
204 #else
205 # if __GNUC__ >= 4
206 #  define MagickPPExport __attribute__ ((visibility ("default")))
207 #  define MagickPPPrivate  __attribute__ ((visibility ("hidden")))
208 # else
209 #   define MagickPPExport
210 #   define MagickPPPrivate
211 # endif
212 #endif
213
214 #if defined(WIN32) && defined(_VISUALC_)
215 #  pragma warning(disable : 4996) /* function deprecation warnings */
216 #endif
217
218 //
219 // Import ImageMagick symbols and types which are used as part of the
220 // Magick++ API definition into namespace "Magick".
221 //
222 namespace Magick
223 {
224   // The datatype for an RGB component
225   using MagickCore::Quantum;
226   using MagickCore::MagickRealType;
227   using MagickCore::MagickSizeType;
228
229   // Boolean types
230   using MagickCore::MagickBooleanType;
231   using MagickCore::MagickFalse;
232   using MagickCore::MagickTrue;
233
234   // Image class types
235   using MagickCore::ClassType;
236   using MagickCore::UndefinedClass;
237   using MagickCore::DirectClass;
238   using MagickCore::PseudoClass;
239   
240   // Channel types
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;
254   
255   // Color-space types
256   using MagickCore::ColorspaceType;
257
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;
290   
291   // Compliance types
292   using MagickCore::AllCompliance;
293
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;
334   
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;
347
348   // Dispose methods
349   using MagickCore::DisposeType;
350   using MagickCore::UndefinedDispose;
351   using MagickCore::NoneDispose;
352   using MagickCore::BackgroundDispose;
353   using MagickCore::PreviousDispose;
354
355   // Distort methods
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;
372
373   // Dither methods
374   using MagickCore::UndefinedDitherMethod;
375   using MagickCore::NoDitherMethod;
376   using MagickCore::RiemersmaDitherMethod;
377   using MagickCore::FloydSteinbergDitherMethod;
378
379   // Endian options
380   using MagickCore::EndianType;
381   using MagickCore::UndefinedEndian;
382   using MagickCore::LSBEndian;
383   using MagickCore::MSBEndian;
384
385   // Evaluate options
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;
400
401   // Fill rules
402   using MagickCore::FillRule;
403   using MagickCore::UndefinedRule;
404   using MagickCore::EvenOddRule;
405   using MagickCore::NonZeroRule;
406   
407   // Filter types
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;
437
438   // Bit gravity
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;
450
451   // Image types
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;
464   
465   // Interlace types
466   using MagickCore::InterlaceType;
467   using MagickCore::UndefinedInterlace;
468   using MagickCore::NoInterlace;
469   using MagickCore::LineInterlace;
470   using MagickCore::PlaneInterlace;
471   using MagickCore::PartitionInterlace;
472
473   // Layer method
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;
492
493   // Line cap types
494   using MagickCore::LineCap;
495   using MagickCore::UndefinedCap;
496   using MagickCore::ButtCap;
497   using MagickCore::RoundCap;
498   using MagickCore::SquareCap;
499
500   // Line join types
501   using MagickCore::LineJoin;
502   using MagickCore::UndefinedJoin;
503   using MagickCore::MiterJoin;
504   using MagickCore::RoundJoin;
505   using MagickCore::BevelJoin;
506
507   // Noise types
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;
515
516   // Orientation types
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;
527   
528   // Paint methods
529   using MagickCore::PaintMethod;
530   using MagickCore::PointMethod;
531   using MagickCore::ReplaceMethod;
532   using MagickCore::FloodfillMethod;
533   using MagickCore::FillToBorderMethod;
534   using MagickCore::ResetMethod;
535
536   // Pixel traits
537   using MagickCore::UndefinedPixelTrait;
538   using MagickCore::BlendPixelTrait;
539
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;
572
573   // Quantum types
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;
590
591   // Rendering intents
592   using MagickCore::RenderingIntent;
593   using MagickCore::UndefinedIntent;
594   using MagickCore::SaturationIntent;
595   using MagickCore::PerceptualIntent;
596   using MagickCore::AbsoluteIntent;
597   using MagickCore::RelativeIntent;
598   
599   // Resource types
600   using MagickCore::MemoryResource;
601
602   // Resolution units
603   using MagickCore::ResolutionType;
604   using MagickCore::UndefinedResolution;
605   using MagickCore::PixelsPerInchResolution;
606   using MagickCore::PixelsPerCentimeterResolution;
607
608   // PixelInfo structure
609   using MagickCore::PixelInfo;
610   using MagickCore::Quantum;
611
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;
620
621   // Statistic type
622   using MagickCore::MedianStatistic;
623   using MagickCore::NonpeakStatistic;
624
625   // StorageType type
626   using MagickCore::StorageType;
627   using MagickCore::CharPixel;
628   using MagickCore::ShortPixel;
629   using MagickCore::LongLongPixel;
630   using MagickCore::FloatPixel;
631   using MagickCore::DoublePixel;
632
633   // StretchType type
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;
645
646   // StyleType type
647   using MagickCore::StyleType;
648   using MagickCore::NormalStyle;
649   using MagickCore::ItalicStyle;
650   using MagickCore::ObliqueStyle;
651   using MagickCore::AnyStyle;
652
653   // Decoration types
654   using MagickCore::DecorationType;
655   using MagickCore::NoDecoration;
656   using MagickCore::UnderlineDecoration;
657   using MagickCore::OverlineDecoration;
658   using MagickCore::LineThroughDecoration;
659
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;
679
680 #if defined(MAGICKCORE_IMPLEMENTATION)
681   //
682   // ImageMagick symbols used in implementation code
683   //
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;
1078
1079 #endif // MAGICKCORE_IMPLEMENTATION
1080
1081 }
1082
1083 #endif // Magick_Include_header