Home | History | Annotate | Download | only in Magick++
      1 // This may look like C code, but it is really -*- C++ -*-
      2 //
      3 // Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002
      4 // Copyright Dirk Lemstra 2013-2015
      5 //
      6 // Inclusion of ImageMagick headers (with namespace magic)
      7 
      8 #ifndef Magick_Include_header
      9 #define Magick_Include_header
     10 
     11 #if !defined(_MAGICK_CONFIG_H)
     12 # define _MAGICK_CONFIG_H
     13 # if !defined(vms) && !defined(macintosh)
     14 #  include "MagickCore/magick-config.h"
     15 # else
     16 #  include "magick-config.h"
     17 # endif
     18 # undef inline // Remove possible definition from config.h
     19 # undef class
     20 #endif
     21 
     22 // Needed for stdio FILE
     23 #include <stdio.h>
     24 #include <stdarg.h>
     25 #include <stdlib.h>
     26 #include <time.h>
     27 #include <math.h>
     28 #include <sys/types.h>
     29 
     30 #if defined(__BORLANDC__)
     31 # include <vcl.h> /* Borland C++ Builder 4.0 requirement */
     32 #endif // defined(__BORLANDC__)
     33 
     34 //
     35 // Include ImageMagick headers into namespace "MagickCore". If
     36 // MAGICKCORE_IMPLEMENTATION is defined, include ImageMagick development
     37 // headers.  This scheme minimizes the possibility of conflict with
     38 // user code.
     39 //
     40 namespace MagickCore
     41 {
     42 #include <MagickCore/MagickCore.h>
     43 #include <MagickWand/MagickWand.h>
     44 #undef inline // Remove possible definition from config.h
     45 
     46 #undef class
     47 }
     48 
     49 //
     50 // Provide appropriate DLL imports/exports for Visual C++,
     51 // Borland C++Builder and MinGW builds.
     52 //
     53 #if defined(WIN32) && !defined(__CYGWIN__) && !defined(__MINGW32__)
     54 # define MagickCplusPlusDLLSupported
     55 #endif
     56 #if defined(MagickCplusPlusDLLSupported)
     57 #  if defined(_MT) && defined(_DLL) && !defined(_LIB) && !defined(STATIC_MAGICK)
     58 //
     59 // In a native Windows build, the following defines are used:
     60 //
     61 //   _MT         = Multithreaded
     62 //   _DLL        = Using code is part of a DLL
     63 //   _LIB        = Using code is being built as a library.
     64 //   _MAGICKMOD_ = Build uses loadable modules (Magick++ does not care about this)
     65 //
     66 // In the case where ImageMagick is built as a static library but the
     67 // using code is dynamic, STATIC_MAGICK may be defined in the project to
     68 // override triggering dynamic library behavior.
     69 //
     70 #    if defined(_VISUALC_)
     71 #      define MagickDLLExplicitTemplate
     72 #      pragma warning( disable: 4275 )
     73 #      pragma warning( disable: 4273 )  /* Disable the stupid dll linkage warnings */
     74 #      pragma warning( disable: 4251 )
     75 #    endif
     76 #    if !defined(MAGICKCORE_IMPLEMENTATION)
     77 #      if defined(__GNUC__)
     78 #       define MagickPPExport __attribute__ ((dllimport))
     79 #      else
     80 #       define MagickPPExport __declspec(dllimport)
     81 #      endif
     82 #      define MagickPPPrivate extern __declspec(dllimport)
     83 #      if defined(_VISUALC_)
     84 #        pragma message( "Magick++ lib DLL import" )
     85 #      endif
     86 #    else
     87 #      if defined(__BORLANDC__) || defined(__MINGW32__)
     88 #        define MagickPPExport __declspec(dllexport)
     89 #        define MagickPPPrivate __declspec(dllexport)
     90 #        if defined(__BORLANDC__)
     91 #          pragma message( "BCBMagick++ lib DLL export" )
     92 #        endif
     93 #      else
     94 #        if defined(__GNUC__)
     95 #         define MagickPPExport __attribute__ ((dllexport))
     96 #        else
     97 #         define MagickPPExport __declspec(dllexport)
     98 #        endif
     99 #        define MagickPPPrivate extern __declspec(dllexport)
    100 #      endif
    101 #      if defined(_VISUALC_)
    102 #        pragma message( "Magick++ lib DLL export" )
    103 #      endif
    104 #    endif
    105 #  else
    106 #    define MagickPPExport
    107 #    define MagickPPPrivate
    108 #    if defined(_VISUALC_)
    109 #      pragma message( "Magick++ lib static interface" )
    110 #    endif
    111 #    if defined(_MSC_VER) && defined(STATIC_MAGICK) && !defined(NOAUTOLINK_MAGICK)
    112 #      if defined(_DEBUG)
    113 #        if defined(MAGICKCORE_BZLIB_DELEGATE)
    114 #          pragma comment(lib, "CORE_DB_bzlib_.lib")
    115 #        endif
    116 #        pragma comment(lib, "CORE_DB_coders_.lib")
    117 #        if defined(MAGICKCORE_OPENEXR_DELEGATE)
    118 #          pragma comment(lib, "CORE_DB_exr_.lib")
    119 #        endif
    120 #        if defined(MAGICKCORE_LQR_DELEGATE)
    121 #          pragma comment(lib, "CORE_DB_ffi_.lib")
    122 #        endif
    123 #        pragma comment(lib, "CORE_DB_filters_.lib")
    124 #        if defined(MAGICKCORE_FLIF_DELEGATE)
    125 #          pragma comment(lib, "CORE_DB_flif_.lib")
    126 #        endif
    127 #        if defined(MAGICKCORE_LQR_DELEGATE)
    128 #          pragma comment(lib, "CORE_DB_glib_.lib")
    129 #          pragma comment(lib, "winmm.lib")
    130 #        endif
    131 #        if defined(MAGICKCORE_JBIG_DELEGATE)
    132 #          pragma comment(lib, "CORE_DB_jbig_.lib")
    133 #        endif
    134 #        if defined(MAGICKCORE_JP2_DELEGATE)
    135 #          pragma comment(lib, "CORE_DB_jp2_.lib")
    136 #        endif
    137 #        if defined(MAGICKCORE_JPEG_DELEGATE)
    138 #          pragma comment(lib, "CORE_DB_jpeg_.lib")
    139 #        endif
    140 #        if defined(MAGICKCORE_LCMS_DELEGATE)
    141 #          pragma comment(lib, "CORE_DB_lcms_.lib")
    142 #        endif
    143 #        if defined(MAGICKCORE_LIBOPENJP2_DELEGATE)
    144 #          pragma comment(lib, "CORE_DB_openjpeg_.lib")
    145 #        endif
    146 #        pragma comment(lib, "CORE_DB_libxml_.lib")
    147 #        if defined(MAGICKCORE_LQR_DELEGATE)
    148 #          pragma comment(lib, "CORE_DB_lqr_.lib")
    149 #        endif
    150 #        pragma comment(lib, "CORE_DB_Magick++_.lib")
    151 #        pragma comment(lib, "CORE_DB_MagickCore_.lib")
    152 #        pragma comment(lib, "CORE_DB_MagickWand_.lib")
    153 #        if defined(MAGICKCORE_PANGOCAIRO_DELEGATE)
    154 #          pragma comment(lib, "CORE_DB_cairo_.lib")
    155 #          pragma comment(lib, "CORE_DB_pango_.lib")
    156 #          pragma comment(lib, "CORE_DB_pixman_.lib")
    157 #        endif
    158 #        if defined(MAGICKCORE_PNG_DELEGATE)
    159 #          pragma comment(lib, "CORE_DB_png_.lib")
    160 #        endif
    161 #        if defined(MAGICKCORE_RSVG_DELEGATE)
    162 #          pragma comment(lib, "CORE_DB_croco_.lib")
    163 #          pragma comment(lib, "CORE_DB_librsvg_.lib")
    164 #        endif
    165 #        if defined(MAGICKCORE_TIFF_DELEGATE)
    166 #          pragma comment(lib, "CORE_DB_tiff_.lib")
    167 #        endif
    168 #        if defined(MAGICKCORE_FREETYPE_DELEGATE)
    169 #          pragma comment(lib, "CORE_DB_ttf_.lib")
    170 #        endif
    171 #        if defined(MAGICKCORE_WEBP_DELEGATE)
    172 #          pragma comment(lib, "CORE_DB_webp_.lib")
    173 #        endif
    174 #        if defined(MAGICKCORE_X11_DELEGATE)
    175 #          pragma comment(lib, "CORE_DB_xlib_.lib")
    176 #        endif
    177 #        if defined(MAGICKCORE_ZLIB_DELEGATE)
    178 #          pragma comment(lib, "CORE_DB_zlib_.lib")
    179 #        endif
    180 #      else
    181 #        if defined(MAGICKCORE_BZLIB_DELEGATE)
    182 #          pragma comment(lib, "CORE_RL_bzlib_.lib")
    183 #        endif
    184 #        pragma comment(lib, "CORE_RL_coders_.lib")
    185 #        if defined(MAGICKCORE_OPENEXR_DELEGATE)
    186 #          pragma comment(lib, "CORE_RL_exr_.lib")
    187 #        endif
    188 #        if defined(MAGICKCORE_LQR_DELEGATE)
    189 #          pragma comment(lib, "CORE_RL_ffi_.lib")
    190 #        endif
    191 #        pragma comment(lib, "CORE_RL_filters_.lib")
    192 #        if defined(MAGICKCORE_FLIF_DELEGATE)
    193 #          pragma comment(lib, "CORE_RL_flif_.lib")
    194 #        endif
    195 #        if defined(MAGICKCORE_LQR_DELEGATE)
    196 #          pragma comment(lib, "CORE_RL_glib_.lib")
    197 #          pragma comment(lib, "winmm.lib")
    198 #        endif
    199 #        if defined(MAGICKCORE_JBIG_DELEGATE)
    200 #          pragma comment(lib, "CORE_RL_jbig_.lib")
    201 #        endif
    202 #        if defined(MAGICKCORE_JP2_DELEGATE)
    203 #          pragma comment(lib, "CORE_RL_jp2_.lib")
    204 #        endif
    205 #        if defined(MAGICKCORE_JPEG_DELEGATE)
    206 #          pragma comment(lib, "CORE_RL_jpeg_.lib")
    207 #        endif
    208 #        if defined(MAGICKCORE_LCMS_DELEGATE)
    209 #          pragma comment(lib, "CORE_RL_lcms_.lib")
    210 #        endif
    211 #        if defined(MAGICKCORE_LIBOPENJP2_DELEGATE)
    212 #          pragma comment(lib, "CORE_RL_openjpeg_.lib")
    213 #        endif
    214 #        pragma comment(lib, "CORE_RL_libxml_.lib")
    215 #        if defined(MAGICKCORE_LQR_DELEGATE)
    216 #          pragma comment(lib, "CORE_RL_lqr_.lib")
    217 #        endif
    218 #        pragma comment(lib, "CORE_RL_Magick++_.lib")
    219 #        pragma comment(lib, "CORE_RL_MagickCore_.lib")
    220 #        pragma comment(lib, "CORE_RL_MagickWand_.lib")
    221 #        if defined(MAGICKCORE_PANGOCAIRO_DELEGATE)
    222 #          pragma comment(lib, "CORE_RL_cairo_.lib")
    223 #          pragma comment(lib, "CORE_RL_pango_.lib")
    224 #          pragma comment(lib, "CORE_RL_pixman_.lib")
    225 #        endif
    226 #        if defined(MAGICKCORE_PNG_DELEGATE)
    227 #          pragma comment(lib, "CORE_RL_png_.lib")
    228 #        endif
    229 #        if defined(MAGICKCORE_RSVG_DELEGATE)
    230 #          pragma comment(lib, "CORE_RL_croco_.lib")
    231 #          pragma comment(lib, "CORE_RL_librsvg_.lib")
    232 #        endif
    233 #        if defined(MAGICKCORE_TIFF_DELEGATE)
    234 #          pragma comment(lib, "CORE_RL_tiff_.lib")
    235 #        endif
    236 #        if defined(MAGICKCORE_FREETYPE_DELEGATE)
    237 #          pragma comment(lib, "CORE_RL_ttf_.lib")
    238 #        endif
    239 #        if defined(MAGICKCORE_WEBP_DELEGATE)
    240 #          pragma comment(lib, "CORE_RL_webp_.lib")
    241 #        endif
    242 #        if defined(MAGICKCORE_X11_DELEGATE)
    243 #          pragma comment(lib, "CORE_RL_xlib_.lib")
    244 #        endif
    245 #        if defined(MAGICKCORE_ZLIB_DELEGATE)
    246 #          pragma comment(lib, "CORE_RL_zlib_.lib")
    247 #        endif
    248 #      endif
    249 #      if defined(_WIN32_WCE)
    250 #        pragma comment(lib, "wsock32.lib")
    251 #      else
    252 #        pragma comment(lib, "ws2_32.lib")
    253 #      endif
    254 #      pragma comment(lib, "urlmon.lib")
    255 #    endif
    256 #  endif
    257 #else
    258 # if __GNUC__ >= 4
    259 #  define MagickPPExport __attribute__ ((visibility ("default")))
    260 #  define MagickPPPrivate  __attribute__ ((visibility ("hidden")))
    261 # else
    262 #   define MagickPPExport
    263 #   define MagickPPPrivate
    264 # endif
    265 #endif
    266 
    267 #if (defined(WIN32) || defined(WIN64)) && defined(_VISUALC_)
    268 #  pragma warning(disable : 4996) /* function deprecation warnings */
    269 #endif
    270 
    271 //
    272 // Import ImageMagick symbols and types which are used as part of the
    273 // Magick++ API definition into namespace "Magick".
    274 //
    275 namespace Magick
    276 {
    277   // The datatype for an RGB component
    278   using MagickCore::Quantum;
    279   using MagickCore::MagickRealType;
    280   using MagickCore::MagickSizeType;
    281   using MagickCore::MagickStatusType;
    282 
    283   // Structures
    284   using MagickCore::AffineMatrix;
    285   using MagickCore::CacheView;
    286   using MagickCore::CCObjectInfo;
    287   using MagickCore::DrawInfo;
    288   using MagickCore::DrawingWand;
    289   using MagickCore::ExceptionInfo;
    290   using MagickCore::FrameInfo;
    291   using MagickCore::ImageInfo;
    292   using MagickCore::KernelInfo;
    293   using MagickCore::LinkedListInfo;
    294   using MagickCore::MagickInfo;
    295   using MagickCore::MagickWand;
    296   using MagickCore::MontageInfo;
    297   using MagickCore::OffsetInfo;
    298   using MagickCore::PixelInfo;
    299   using MagickCore::PixelWand;
    300   using MagickCore::PointInfo;
    301   using MagickCore::ProfileInfo;
    302   using MagickCore::QuantizeInfo;
    303   using MagickCore::QuantumInfo;
    304   using MagickCore::RectangleInfo;
    305   using MagickCore::StringInfo;
    306 
    307   // Alignment types.
    308   using MagickCore::AlignType;
    309   using MagickCore::UndefinedAlign;
    310   using MagickCore::LeftAlign;
    311   using MagickCore::CenterAlign;
    312   using MagickCore::RightAlign;
    313 
    314   // Alpha channel options
    315   using MagickCore::AlphaChannelOption;
    316   using MagickCore::UndefinedAlphaChannel;
    317   using MagickCore::ActivateAlphaChannel;
    318   using MagickCore::AssociateAlphaChannel;
    319   using MagickCore::BackgroundAlphaChannel;
    320   using MagickCore::CopyAlphaChannel;
    321   using MagickCore::DeactivateAlphaChannel;
    322   using MagickCore::DiscreteAlphaChannel;
    323   using MagickCore::DisassociateAlphaChannel;
    324   using MagickCore::ExtractAlphaChannel;
    325   using MagickCore::OffAlphaChannel;
    326   using MagickCore::OnAlphaChannel;
    327   using MagickCore::OpaqueAlphaChannel;
    328   using MagickCore::RemoveAlphaChannel;
    329   using MagickCore::SetAlphaChannel;
    330   using MagickCore::ShapeAlphaChannel;
    331   using MagickCore::TransparentAlphaChannel;
    332 
    333   // Channel types
    334   using MagickCore::ChannelType;
    335   using MagickCore::UndefinedChannel;
    336   using MagickCore::RedChannel;
    337   using MagickCore::GrayChannel;
    338   using MagickCore::CyanChannel;
    339   using MagickCore::GreenChannel;
    340   using MagickCore::MagentaChannel;
    341   using MagickCore::BlueChannel;
    342   using MagickCore::YellowChannel;
    343   using MagickCore::BlackChannel;
    344   using MagickCore::AlphaChannel;
    345   using MagickCore::OpacityChannel;
    346   using MagickCore::IndexChannel;
    347   using MagickCore::ReadMaskChannel;
    348   using MagickCore::WriteMaskChannel;
    349   using MagickCore::MetaChannel;
    350   using MagickCore::CompositeChannels;
    351   using MagickCore::AllChannels;
    352   using MagickCore::TrueAlphaChannel;
    353   using MagickCore::RGBChannels;
    354   using MagickCore::GrayChannels;
    355   using MagickCore::SyncChannels;
    356   using MagickCore::DefaultChannels;
    357 
    358   // Image class types
    359   using MagickCore::ClassType;
    360   using MagickCore::UndefinedClass;
    361   using MagickCore::DirectClass;
    362   using MagickCore::PseudoClass;
    363 
    364   // Clip path units
    365   using MagickCore::ClipPathUnits;
    366   using MagickCore::UndefinedPathUnits;
    367   using MagickCore::UserSpace;
    368   using MagickCore::UserSpaceOnUse;
    369   using MagickCore::ObjectBoundingBox;
    370 
    371   // Color-space types
    372   using MagickCore::ColorspaceType;
    373   using MagickCore::UndefinedColorspace;
    374   using MagickCore::CMYColorspace;
    375   using MagickCore::CMYKColorspace;
    376   using MagickCore::GRAYColorspace;
    377   using MagickCore::HCLColorspace;
    378   using MagickCore::HCLpColorspace;
    379   using MagickCore::HSBColorspace;
    380   using MagickCore::HSIColorspace;
    381   using MagickCore::HSLColorspace;
    382   using MagickCore::HSVColorspace;
    383   using MagickCore::HWBColorspace;
    384   using MagickCore::LabColorspace;
    385   using MagickCore::LCHColorspace;
    386   using MagickCore::LCHabColorspace;
    387   using MagickCore::LCHuvColorspace;
    388   using MagickCore::LogColorspace;
    389   using MagickCore::LMSColorspace;
    390   using MagickCore::LuvColorspace;
    391   using MagickCore::OHTAColorspace;
    392   using MagickCore::Rec601YCbCrColorspace;
    393   using MagickCore::Rec709YCbCrColorspace;
    394   using MagickCore::RGBColorspace;
    395   using MagickCore::scRGBColorspace;
    396   using MagickCore::sRGBColorspace;
    397   using MagickCore::TransparentColorspace;
    398   using MagickCore::xyYColorspace;
    399   using MagickCore::XYZColorspace;
    400   using MagickCore::YCbCrColorspace;
    401   using MagickCore::YCCColorspace;
    402   using MagickCore::YDbDrColorspace;
    403   using MagickCore::YIQColorspace;
    404   using MagickCore::YPbPrColorspace;
    405   using MagickCore::YUVColorspace;
    406 
    407   // Command options
    408   using MagickCore::CommandOption;
    409   using MagickCore::MagickDirectionOptions;
    410   using MagickCore::MagickGravityOptions;
    411   using MagickCore::MagickKernelOptions;
    412   using MagickCore::MagickStyleOptions;
    413 
    414   // Compliance types
    415   using MagickCore::ComplianceType;
    416   using MagickCore::AllCompliance;
    417 
    418   // Composition operations
    419   using MagickCore::CompositeOperator;
    420   using MagickCore::AlphaCompositeOp;
    421   using MagickCore::AtopCompositeOp;
    422   using MagickCore::BlendCompositeOp;
    423   using MagickCore::BlurCompositeOp;
    424   using MagickCore::BumpmapCompositeOp;
    425   using MagickCore::ChangeMaskCompositeOp;
    426   using MagickCore::ClearCompositeOp;
    427   using MagickCore::ColorBurnCompositeOp;
    428   using MagickCore::ColorDodgeCompositeOp;
    429   using MagickCore::ColorizeCompositeOp;
    430   using MagickCore::CopyBlackCompositeOp;
    431   using MagickCore::CopyBlueCompositeOp;
    432   using MagickCore::CopyCompositeOp;
    433   using MagickCore::CopyCyanCompositeOp;
    434   using MagickCore::CopyGreenCompositeOp;
    435   using MagickCore::CopyMagentaCompositeOp;
    436   using MagickCore::CopyAlphaCompositeOp;
    437   using MagickCore::CopyRedCompositeOp;
    438   using MagickCore::CopyYellowCompositeOp;
    439   using MagickCore::DarkenCompositeOp;
    440   using MagickCore::DarkenIntensityCompositeOp;
    441   using MagickCore::DifferenceCompositeOp;
    442   using MagickCore::DisplaceCompositeOp;
    443   using MagickCore::DissolveCompositeOp;
    444   using MagickCore::DistortCompositeOp;
    445   using MagickCore::DivideDstCompositeOp;
    446   using MagickCore::DivideSrcCompositeOp;
    447   using MagickCore::DstAtopCompositeOp;
    448   using MagickCore::DstCompositeOp;
    449   using MagickCore::DstInCompositeOp;
    450   using MagickCore::DstOutCompositeOp;
    451   using MagickCore::DstOverCompositeOp;
    452   using MagickCore::ExclusionCompositeOp;
    453   using MagickCore::HardLightCompositeOp;
    454   using MagickCore::HardMixCompositeOp;
    455   using MagickCore::HueCompositeOp;
    456   using MagickCore::InCompositeOp;
    457   using MagickCore::IntensityCompositeOp;
    458   using MagickCore::LightenCompositeOp;
    459   using MagickCore::LightenIntensityCompositeOp;
    460   using MagickCore::LinearBurnCompositeOp;
    461   using MagickCore::LinearDodgeCompositeOp;
    462   using MagickCore::LinearLightCompositeOp;
    463   using MagickCore::LuminizeCompositeOp;
    464   using MagickCore::MathematicsCompositeOp;
    465   using MagickCore::MinusDstCompositeOp;
    466   using MagickCore::MinusSrcCompositeOp;
    467   using MagickCore::ModulateCompositeOp;
    468   using MagickCore::ModulusAddCompositeOp;
    469   using MagickCore::ModulusSubtractCompositeOp;
    470   using MagickCore::MultiplyCompositeOp;
    471   using MagickCore::NoCompositeOp;
    472   using MagickCore::OutCompositeOp;
    473   using MagickCore::OverCompositeOp;
    474   using MagickCore::OverlayCompositeOp;
    475   using MagickCore::PegtopLightCompositeOp;
    476   using MagickCore::PinLightCompositeOp;
    477   using MagickCore::PlusCompositeOp;
    478   using MagickCore::ReplaceCompositeOp;
    479   using MagickCore::SaturateCompositeOp;
    480   using MagickCore::ScreenCompositeOp;
    481   using MagickCore::SoftLightCompositeOp;
    482   using MagickCore::SrcAtopCompositeOp;
    483   using MagickCore::SrcCompositeOp;
    484   using MagickCore::SrcInCompositeOp;
    485   using MagickCore::SrcOutCompositeOp;
    486   using MagickCore::SrcOverCompositeOp;
    487   using MagickCore::ThresholdCompositeOp;
    488   using MagickCore::UndefinedCompositeOp;
    489   using MagickCore::VividLightCompositeOp;
    490   using MagickCore::XorCompositeOp;
    491 
    492   // Compression algorithms
    493   using MagickCore::CompressionType;
    494   using MagickCore::UndefinedCompression;
    495   using MagickCore::B44ACompression;
    496   using MagickCore::B44Compression;
    497   using MagickCore::BZipCompression;
    498   using MagickCore::DXT1Compression;
    499   using MagickCore::DXT3Compression;
    500   using MagickCore::DXT5Compression;
    501   using MagickCore::FaxCompression;
    502   using MagickCore::Group4Compression;
    503   using MagickCore::JBIG1Compression;
    504   using MagickCore::JBIG2Compression;
    505   using MagickCore::JPEG2000Compression;
    506   using MagickCore::JPEGCompression;
    507   using MagickCore::LosslessJPEGCompression;
    508   using MagickCore::LZMACompression;
    509   using MagickCore::LZWCompression;
    510   using MagickCore::NoCompression;
    511   using MagickCore::PizCompression;
    512   using MagickCore::Pxr24Compression;
    513   using MagickCore::RLECompression;
    514   using MagickCore::ZipCompression;
    515   using MagickCore::ZipSCompression;
    516 
    517   // Decoration types
    518   using MagickCore::DecorationType;
    519   using MagickCore::UndefinedDecoration;
    520   using MagickCore::NoDecoration;
    521   using MagickCore::UnderlineDecoration;
    522   using MagickCore::OverlineDecoration;
    523   using MagickCore::LineThroughDecoration;
    524 
    525   // Direction types
    526   using MagickCore::DirectionType;
    527   using MagickCore::UndefinedDirection;
    528   using MagickCore::RightToLeftDirection;
    529   using MagickCore::LeftToRightDirection;
    530 
    531   // Dispose methods
    532   using MagickCore::DisposeType;
    533   using MagickCore::UndefinedDispose;
    534   using MagickCore::NoneDispose;
    535   using MagickCore::BackgroundDispose;
    536   using MagickCore::PreviousDispose;
    537 
    538   // Distort methods
    539   using MagickCore::DistortMethod;
    540   using MagickCore::UndefinedDistortion;
    541   using MagickCore::AffineDistortion;
    542   using MagickCore::AffineProjectionDistortion;
    543   using MagickCore::ScaleRotateTranslateDistortion;
    544   using MagickCore::PerspectiveDistortion;
    545   using MagickCore::PerspectiveProjectionDistortion;
    546   using MagickCore::BilinearForwardDistortion;
    547   using MagickCore::BilinearDistortion;
    548   using MagickCore::BilinearReverseDistortion;
    549   using MagickCore::PolynomialDistortion;
    550   using MagickCore::ArcDistortion;
    551   using MagickCore::PolarDistortion;
    552   using MagickCore::DePolarDistortion;
    553   using MagickCore::Cylinder2PlaneDistortion;
    554   using MagickCore::Plane2CylinderDistortion;
    555   using MagickCore::BarrelDistortion;
    556   using MagickCore::BarrelInverseDistortion;
    557   using MagickCore::ShepardsDistortion;
    558   using MagickCore::ResizeDistortion;
    559   using MagickCore::SentinelDistortion;
    560 
    561   // Dither methods
    562   using MagickCore::DitherMethod;
    563   using MagickCore::UndefinedDitherMethod;
    564   using MagickCore::NoDitherMethod;
    565   using MagickCore::RiemersmaDitherMethod;
    566   using MagickCore::FloydSteinbergDitherMethod;
    567 
    568   // Endian options
    569   using MagickCore::EndianType;
    570   using MagickCore::UndefinedEndian;
    571   using MagickCore::LSBEndian;
    572   using MagickCore::MSBEndian;
    573 
    574   // Boolean types
    575   using MagickCore::MagickBooleanType;
    576   using MagickCore::MagickFalse;
    577   using MagickCore::MagickTrue;
    578 
    579   // Evaluate options
    580   using MagickCore::MagickEvaluateOperator;
    581   using MagickCore::UndefinedEvaluateOperator;
    582   using MagickCore::AbsEvaluateOperator;
    583   using MagickCore::AddEvaluateOperator;
    584   using MagickCore::AddModulusEvaluateOperator;
    585   using MagickCore::AndEvaluateOperator;
    586   using MagickCore::CosineEvaluateOperator;
    587   using MagickCore::DivideEvaluateOperator;
    588   using MagickCore::ExponentialEvaluateOperator;
    589   using MagickCore::GaussianNoiseEvaluateOperator;
    590   using MagickCore::ImpulseNoiseEvaluateOperator;
    591   using MagickCore::LaplacianNoiseEvaluateOperator;
    592   using MagickCore::LeftShiftEvaluateOperator;
    593   using MagickCore::LogEvaluateOperator;
    594   using MagickCore::MaxEvaluateOperator;
    595   using MagickCore::MeanEvaluateOperator;
    596   using MagickCore::MedianEvaluateOperator;
    597   using MagickCore::MinEvaluateOperator;
    598   using MagickCore::MultiplicativeNoiseEvaluateOperator;
    599   using MagickCore::MultiplyEvaluateOperator;
    600   using MagickCore::OrEvaluateOperator;
    601   using MagickCore::PoissonNoiseEvaluateOperator;
    602   using MagickCore::PowEvaluateOperator;
    603   using MagickCore::RootMeanSquareEvaluateOperator;
    604   using MagickCore::RightShiftEvaluateOperator;
    605   using MagickCore::SetEvaluateOperator;
    606   using MagickCore::SineEvaluateOperator;
    607   using MagickCore::SubtractEvaluateOperator;
    608   using MagickCore::SumEvaluateOperator;
    609   using MagickCore::ThresholdBlackEvaluateOperator;
    610   using MagickCore::ThresholdEvaluateOperator;
    611   using MagickCore::ThresholdWhiteEvaluateOperator;
    612   using MagickCore::UniformNoiseEvaluateOperator;
    613   using MagickCore::XorEvaluateOperator;
    614 
    615   // Fill rules
    616   using MagickCore::FillRule;
    617   using MagickCore::UndefinedRule;
    618   using MagickCore::EvenOddRule;
    619   using MagickCore::NonZeroRule;
    620 
    621   // Filter types
    622   using MagickCore::FilterType;
    623   using MagickCore::UndefinedFilter;
    624   using MagickCore::PointFilter;
    625   using MagickCore::BoxFilter;
    626   using MagickCore::TriangleFilter;
    627   using MagickCore::HermiteFilter;
    628   using MagickCore::HannFilter;
    629   using MagickCore::HammingFilter;
    630   using MagickCore::BlackmanFilter;
    631   using MagickCore::GaussianFilter;
    632   using MagickCore::QuadraticFilter;
    633   using MagickCore::CubicFilter;
    634   using MagickCore::CatromFilter;
    635   using MagickCore::MitchellFilter;
    636   using MagickCore::JincFilter;
    637   using MagickCore::SincFilter;
    638   using MagickCore::SincFastFilter;
    639   using MagickCore::KaiserFilter;
    640   using MagickCore::WelchFilter;
    641   using MagickCore::ParzenFilter;
    642   using MagickCore::BohmanFilter;
    643   using MagickCore::BartlettFilter;
    644   using MagickCore::LagrangeFilter;
    645   using MagickCore::LanczosFilter;
    646   using MagickCore::LanczosSharpFilter;
    647   using MagickCore::Lanczos2Filter;
    648   using MagickCore::Lanczos2SharpFilter;
    649   using MagickCore::RobidouxFilter;
    650   using MagickCore::RobidouxSharpFilter;
    651   using MagickCore::CosineFilter;
    652   using MagickCore::SplineFilter;
    653   using MagickCore::LanczosRadiusFilter;
    654   using MagickCore::SentinelFilter;
    655 
    656   // Geometry flags;
    657   using MagickCore::GeometryFlags;
    658   using MagickCore::AreaValue;
    659   using MagickCore::AspectValue;
    660   using MagickCore::GreaterValue;
    661   using MagickCore::HeightValue;
    662   using MagickCore::LessValue;
    663   using MagickCore::MinimumValue;
    664   using MagickCore::NoValue;
    665   using MagickCore::PercentValue;
    666   using MagickCore::WidthValue;
    667   using MagickCore::XNegative;
    668   using MagickCore::XValue;
    669   using MagickCore::YNegative;
    670   using MagickCore::YValue;
    671 
    672   // Bit gravity
    673   using MagickCore::GravityType;
    674   using MagickCore::UndefinedGravity;
    675   using MagickCore::ForgetGravity;
    676   using MagickCore::NorthWestGravity;
    677   using MagickCore::NorthGravity;
    678   using MagickCore::NorthEastGravity;
    679   using MagickCore::WestGravity;
    680   using MagickCore::CenterGravity;
    681   using MagickCore::EastGravity;
    682   using MagickCore::SouthWestGravity;
    683   using MagickCore::SouthGravity;
    684   using MagickCore::SouthEastGravity;
    685 
    686   // Image types
    687   using MagickCore::ImageType;
    688   using MagickCore::UndefinedType;
    689   using MagickCore::BilevelType;
    690   using MagickCore::GrayscaleType;
    691   using MagickCore::GrayscaleAlphaType;
    692   using MagickCore::PaletteType;
    693   using MagickCore::PaletteAlphaType;
    694   using MagickCore::TrueColorType;
    695   using MagickCore::TrueColorAlphaType;
    696   using MagickCore::ColorSeparationType;
    697   using MagickCore::ColorSeparationAlphaType;
    698   using MagickCore::OptimizeType;
    699   using MagickCore::PaletteBilevelAlphaType;
    700 
    701   // Interlace types
    702   using MagickCore::InterlaceType;
    703   using MagickCore::UndefinedInterlace;
    704   using MagickCore::NoInterlace;
    705   using MagickCore::LineInterlace;
    706   using MagickCore::PlaneInterlace;
    707   using MagickCore::PartitionInterlace;
    708   using MagickCore::GIFInterlace;
    709   using MagickCore::JPEGInterlace;
    710   using MagickCore::PNGInterlace;
    711 
    712   // Built-in kernels
    713   using MagickCore::KernelInfoType;
    714   using MagickCore::UndefinedKernel;
    715   using MagickCore::UnityKernel;
    716   using MagickCore::GaussianKernel;
    717   using MagickCore::DoGKernel;
    718   using MagickCore::LoGKernel;
    719   using MagickCore::BlurKernel;
    720   using MagickCore::CometKernel;
    721   using MagickCore::BinomialKernel;
    722   using MagickCore::LaplacianKernel;
    723   using MagickCore::SobelKernel;
    724   using MagickCore::FreiChenKernel;
    725   using MagickCore::RobertsKernel;
    726   using MagickCore::PrewittKernel;
    727   using MagickCore::CompassKernel;
    728   using MagickCore::KirschKernel;
    729   using MagickCore::DiamondKernel;
    730   using MagickCore::SquareKernel;
    731   using MagickCore::RectangleKernel;
    732   using MagickCore::OctagonKernel;
    733   using MagickCore::DiskKernel;
    734   using MagickCore::PlusKernel;
    735   using MagickCore::CrossKernel;
    736   using MagickCore::RingKernel;
    737   using MagickCore::PeaksKernel;
    738   using MagickCore::EdgesKernel;
    739   using MagickCore::CornersKernel;
    740   using MagickCore::DiagonalsKernel;
    741   using MagickCore::LineEndsKernel;
    742   using MagickCore::LineJunctionsKernel;
    743   using MagickCore::RidgesKernel;
    744   using MagickCore::ConvexHullKernel;
    745   using MagickCore::ThinSEKernel;
    746   using MagickCore::SkeletonKernel;
    747   using MagickCore::ChebyshevKernel;
    748   using MagickCore::ManhattanKernel;
    749   using MagickCore::OctagonalKernel;
    750   using MagickCore::EuclideanKernel;
    751   using MagickCore::UserDefinedKernel;
    752 
    753   // Layer method
    754   using MagickCore::LayerMethod;
    755   using MagickCore::UndefinedLayer;
    756   using MagickCore::CoalesceLayer;
    757   using MagickCore::CompareAnyLayer;
    758   using MagickCore::CompareClearLayer;
    759   using MagickCore::CompareOverlayLayer;
    760   using MagickCore::DisposeLayer;
    761   using MagickCore::OptimizeLayer;
    762   using MagickCore::OptimizeImageLayer;
    763   using MagickCore::OptimizePlusLayer;
    764   using MagickCore::OptimizeTransLayer;
    765   using MagickCore::RemoveDupsLayer;
    766   using MagickCore::RemoveZeroLayer;
    767   using MagickCore::CompositeLayer;
    768   using MagickCore::MergeLayer;
    769   using MagickCore::FlattenLayer;
    770   using MagickCore::MosaicLayer;
    771   using MagickCore::TrimBoundsLayer;
    772 
    773   // Line cap types
    774   using MagickCore::LineCap;
    775   using MagickCore::UndefinedCap;
    776   using MagickCore::ButtCap;
    777   using MagickCore::RoundCap;
    778   using MagickCore::SquareCap;
    779 
    780   // Line join types
    781   using MagickCore::LineJoin;
    782   using MagickCore::UndefinedJoin;
    783   using MagickCore::MiterJoin;
    784   using MagickCore::RoundJoin;
    785   using MagickCore::BevelJoin;
    786 
    787   // Log event types
    788   using MagickCore::LogEventType;
    789   using MagickCore::UndefinedEvents;
    790   using MagickCore::NoEvents;
    791   using MagickCore::AccelerateEvent;
    792   using MagickCore::AnnotateEvent;
    793   using MagickCore::BlobEvent;
    794   using MagickCore::CacheEvent;
    795   using MagickCore::CoderEvent;
    796   using MagickCore::ConfigureEvent;
    797   using MagickCore::DeprecateEvent;
    798   using MagickCore::DrawEvent;
    799   using MagickCore::ExceptionEvent;
    800   using MagickCore::ImageEvent;
    801   using MagickCore::LocaleEvent;
    802   using MagickCore::ModuleEvent;
    803   using MagickCore::PixelEvent;
    804   using MagickCore::PolicyEvent;
    805   using MagickCore::ResourceEvent;
    806   using MagickCore::TraceEvent;
    807   using MagickCore::TransformEvent;
    808   using MagickCore::UserEvent;
    809   using MagickCore::WandEvent;
    810   using MagickCore::X11Event;
    811   using MagickCore::CommandEvent;
    812   using MagickCore::AllEvents;
    813 
    814   // Magick functions
    815   using MagickCore::MagickFunction;
    816   using MagickCore::UndefinedFunction;
    817   using MagickCore::ArcsinFunction;
    818   using MagickCore::ArctanFunction;
    819   using MagickCore::PolynomialFunction;
    820   using MagickCore::SinusoidFunction;
    821 
    822   // Metric types
    823   using MagickCore::MetricType;
    824   using MagickCore::UndefinedErrorMetric;
    825   using MagickCore::AbsoluteErrorMetric;
    826   using MagickCore::FuzzErrorMetric;
    827   using MagickCore::MeanAbsoluteErrorMetric;
    828   using MagickCore::MeanErrorPerPixelErrorMetric;
    829   using MagickCore::MeanSquaredErrorMetric;
    830   using MagickCore::NormalizedCrossCorrelationErrorMetric;
    831   using MagickCore::PeakAbsoluteErrorMetric;
    832   using MagickCore::PeakSignalToNoiseRatioErrorMetric;
    833   using MagickCore::PerceptualHashErrorMetric;
    834   using MagickCore::RootMeanSquaredErrorMetric;
    835 
    836   // Morphology methods
    837   using MagickCore::MorphologyMethod;
    838   using MagickCore::UndefinedMorphology;
    839   using MagickCore::ConvolveMorphology;
    840   using MagickCore::CorrelateMorphology;
    841   using MagickCore::ErodeMorphology;
    842   using MagickCore::DilateMorphology;
    843   using MagickCore::ErodeIntensityMorphology;
    844   using MagickCore::DilateIntensityMorphology;
    845   using MagickCore::IterativeDistanceMorphology;
    846   using MagickCore::OpenMorphology;
    847   using MagickCore::CloseMorphology;
    848   using MagickCore::OpenIntensityMorphology;
    849   using MagickCore::CloseIntensityMorphology;
    850   using MagickCore::SmoothMorphology;
    851   using MagickCore::EdgeInMorphology;
    852   using MagickCore::EdgeOutMorphology;
    853   using MagickCore::EdgeMorphology;
    854   using MagickCore::TopHatMorphology;
    855   using MagickCore::BottomHatMorphology;
    856   using MagickCore::HitAndMissMorphology;
    857   using MagickCore::ThinningMorphology;
    858   using MagickCore::ThickenMorphology;
    859   using MagickCore::DistanceMorphology;
    860   using MagickCore::VoronoiMorphology;
    861 
    862   // Noise types
    863   using MagickCore::NoiseType;
    864   using MagickCore::UndefinedNoise;
    865   using MagickCore::UniformNoise;
    866   using MagickCore::GaussianNoise;
    867   using MagickCore::MultiplicativeGaussianNoise;
    868   using MagickCore::ImpulseNoise;
    869   using MagickCore::LaplacianNoise;
    870   using MagickCore::PoissonNoise;
    871 
    872   // Orientation types
    873   using MagickCore::OrientationType;
    874   using MagickCore::UndefinedOrientation;
    875   using MagickCore::TopLeftOrientation;
    876   using MagickCore::TopRightOrientation;
    877   using MagickCore::BottomRightOrientation;
    878   using MagickCore::BottomLeftOrientation;
    879   using MagickCore::LeftTopOrientation;
    880   using MagickCore::RightTopOrientation;
    881   using MagickCore::RightBottomOrientation;
    882   using MagickCore::LeftBottomOrientation;
    883 
    884   // Paint methods
    885   using MagickCore::PaintMethod;
    886   using MagickCore::UndefinedMethod;
    887   using MagickCore::PointMethod;
    888   using MagickCore::ReplaceMethod;
    889   using MagickCore::FloodfillMethod;
    890   using MagickCore::FillToBorderMethod;
    891   using MagickCore::ResetMethod;
    892 
    893   using MagickCore::PixelChannel;
    894   using MagickCore::UndefinedPixelChannel;
    895   using MagickCore::RedPixelChannel;
    896   using MagickCore::CyanPixelChannel;
    897   using MagickCore::GrayPixelChannel;
    898   using MagickCore::LPixelChannel;
    899   using MagickCore::YPixelChannel;
    900   using MagickCore::aPixelChannel;
    901   using MagickCore::GreenPixelChannel;
    902   using MagickCore::MagentaPixelChannel;
    903   using MagickCore::CbPixelChannel;
    904   using MagickCore::bPixelChannel;
    905   using MagickCore::BluePixelChannel;
    906   using MagickCore::YellowPixelChannel;
    907   using MagickCore::CrPixelChannel;
    908   using MagickCore::BlackPixelChannel;
    909   using MagickCore::AlphaPixelChannel;
    910   using MagickCore::IndexPixelChannel;
    911   using MagickCore::ReadMaskPixelChannel;
    912   using MagickCore::WriteMaskPixelChannel;
    913   using MagickCore::MetaPixelChannel;
    914   using MagickCore::IntensityPixelChannel;
    915   using MagickCore::CompositePixelChannel;
    916   using MagickCore::SyncPixelChannel;
    917 
    918   // Pixel intensity method
    919   using MagickCore::PixelIntensityMethod;
    920   using MagickCore::UndefinedPixelIntensityMethod;
    921   using MagickCore::AveragePixelIntensityMethod;
    922   using MagickCore::BrightnessPixelIntensityMethod;
    923   using MagickCore::LightnessPixelIntensityMethod;
    924   using MagickCore::MSPixelIntensityMethod;
    925   using MagickCore::Rec601LumaPixelIntensityMethod;
    926   using MagickCore::Rec601LuminancePixelIntensityMethod;
    927   using MagickCore::Rec709LumaPixelIntensityMethod;
    928   using MagickCore::Rec709LuminancePixelIntensityMethod;
    929   using MagickCore::RMSPixelIntensityMethod;
    930 
    931   // PixelInterpolate methods
    932   using MagickCore::PixelInterpolateMethod;
    933   using MagickCore::UndefinedInterpolatePixel;
    934   using MagickCore::AverageInterpolatePixel;
    935   using MagickCore::Average9InterpolatePixel;
    936   using MagickCore::Average16InterpolatePixel;
    937   using MagickCore::BackgroundInterpolatePixel;
    938   using MagickCore::BilinearInterpolatePixel;
    939   using MagickCore::BlendInterpolatePixel;
    940   using MagickCore::CatromInterpolatePixel;
    941   using MagickCore::IntegerInterpolatePixel;
    942   using MagickCore::MeshInterpolatePixel;
    943   using MagickCore::NearestInterpolatePixel;
    944   using MagickCore::SplineInterpolatePixel;
    945 
    946   // Pixel traits
    947   using MagickCore::PixelTrait;
    948   using MagickCore::UndefinedPixelTrait;
    949   using MagickCore::CopyPixelTrait;
    950   using MagickCore::UpdatePixelTrait;
    951   using MagickCore::BlendPixelTrait;
    952 
    953   // Preview types.  Not currently used by Magick++
    954   using MagickCore::PreviewType;
    955   using MagickCore::UndefinedPreview;
    956   using MagickCore::RotatePreview;
    957   using MagickCore::ShearPreview;
    958   using MagickCore::RollPreview;
    959   using MagickCore::HuePreview;
    960   using MagickCore::SaturationPreview;
    961   using MagickCore::BrightnessPreview;
    962   using MagickCore::GammaPreview;
    963   using MagickCore::SpiffPreview;
    964   using MagickCore::DullPreview;
    965   using MagickCore::GrayscalePreview;
    966   using MagickCore::QuantizePreview;
    967   using MagickCore::DespecklePreview;
    968   using MagickCore::ReduceNoisePreview;
    969   using MagickCore::AddNoisePreview;
    970   using MagickCore::SharpenPreview;
    971   using MagickCore::BlurPreview;
    972   using MagickCore::ThresholdPreview;
    973   using MagickCore::EdgeDetectPreview;
    974   using MagickCore::SpreadPreview;
    975   using MagickCore::SolarizePreview;
    976   using MagickCore::ShadePreview;
    977   using MagickCore::RaisePreview;
    978   using MagickCore::SegmentPreview;
    979   using MagickCore::SwirlPreview;
    980   using MagickCore::ImplodePreview;
    981   using MagickCore::WavePreview;
    982   using MagickCore::OilPaintPreview;
    983   using MagickCore::CharcoalDrawingPreview;
    984   using MagickCore::JPEGPreview;
    985 
    986   // Quantum types
    987   using MagickCore::QuantumType;
    988   using MagickCore::IndexQuantum;
    989   using MagickCore::GrayQuantum;
    990   using MagickCore::IndexAlphaQuantum;
    991   using MagickCore::GrayAlphaQuantum;
    992   using MagickCore::RedQuantum;
    993   using MagickCore::CyanQuantum;
    994   using MagickCore::GreenQuantum;
    995   using MagickCore::YellowQuantum;
    996   using MagickCore::BlueQuantum;
    997   using MagickCore::MagentaQuantum;
    998   using MagickCore::AlphaQuantum;
    999   using MagickCore::BlackQuantum;
   1000   using MagickCore::RGBQuantum;
   1001   using MagickCore::RGBAQuantum;
   1002   using MagickCore::CMYKQuantum;
   1003 
   1004   // Pixel mask types
   1005   using MagickCore::PixelMask;
   1006   using MagickCore::UndefinedPixelMask;
   1007   using MagickCore::ReadPixelMask;
   1008   using MagickCore::WritePixelMask;
   1009 
   1010   // Rendering intents
   1011   using MagickCore::RenderingIntent;
   1012   using MagickCore::UndefinedIntent;
   1013   using MagickCore::SaturationIntent;
   1014   using MagickCore::PerceptualIntent;
   1015   using MagickCore::AbsoluteIntent;
   1016   using MagickCore::RelativeIntent;
   1017 
   1018   // Resource types
   1019   using MagickCore::ResourceType;
   1020   using MagickCore::UndefinedResource;
   1021   using MagickCore::AreaResource;
   1022   using MagickCore::DiskResource;
   1023   using MagickCore::FileResource;
   1024   using MagickCore::HeightResource;
   1025   using MagickCore::MapResource;
   1026   using MagickCore::MemoryResource;
   1027   using MagickCore::ThreadResource;
   1028   using MagickCore::ThrottleResource;
   1029   using MagickCore::TimeResource;
   1030   using MagickCore::WidthResource;
   1031 
   1032   // Resolution units
   1033   using MagickCore::ResolutionType;
   1034   using MagickCore::UndefinedResolution;
   1035   using MagickCore::PixelsPerInchResolution;
   1036   using MagickCore::PixelsPerCentimeterResolution;
   1037 
   1038   // Sparse Color methods
   1039   using MagickCore::SparseColorMethod;
   1040   using MagickCore::UndefinedColorInterpolate;
   1041   using MagickCore::BarycentricColorInterpolate;
   1042   using MagickCore::BilinearColorInterpolate;
   1043   using MagickCore::PolynomialColorInterpolate;
   1044   using MagickCore::ShepardsColorInterpolate;
   1045   using MagickCore::VoronoiColorInterpolate;
   1046   using MagickCore::InverseColorInterpolate;
   1047   using MagickCore::ManhattanColorInterpolate;
   1048 
   1049   // Statistic type
   1050   using MagickCore::StatisticType;
   1051   using MagickCore::UndefinedStatistic;
   1052   using MagickCore::GradientStatistic;
   1053   using MagickCore::MaximumStatistic;
   1054   using MagickCore::MeanStatistic;
   1055   using MagickCore::MedianStatistic;
   1056   using MagickCore::MinimumStatistic;
   1057   using MagickCore::ModeStatistic;
   1058   using MagickCore::NonpeakStatistic;
   1059   using MagickCore::RootMeanSquareStatistic;
   1060   using MagickCore::StandardDeviationStatistic;
   1061 
   1062   // StorageType type
   1063   using MagickCore::StorageType;
   1064   using MagickCore::UndefinedPixel;
   1065   using MagickCore::CharPixel;
   1066   using MagickCore::DoublePixel;
   1067   using MagickCore::FloatPixel;
   1068   using MagickCore::LongPixel;
   1069   using MagickCore::LongLongPixel;
   1070   using MagickCore::QuantumPixel;
   1071   using MagickCore::ShortPixel;
   1072 
   1073   // StretchType type
   1074   using MagickCore::StretchType;
   1075   using MagickCore::UndefinedStretch;
   1076   using MagickCore::NormalStretch;
   1077   using MagickCore::UltraCondensedStretch;
   1078   using MagickCore::ExtraCondensedStretch;
   1079   using MagickCore::CondensedStretch;
   1080   using MagickCore::SemiCondensedStretch;
   1081   using MagickCore::SemiExpandedStretch;
   1082   using MagickCore::ExpandedStretch;
   1083   using MagickCore::ExtraExpandedStretch;
   1084   using MagickCore::UltraExpandedStretch;
   1085   using MagickCore::AnyStretch;
   1086 
   1087   // StyleType type
   1088   using MagickCore::StyleType;
   1089   using MagickCore::UndefinedStyle;
   1090   using MagickCore::NormalStyle;
   1091   using MagickCore::ItalicStyle;
   1092   using MagickCore::ObliqueStyle;
   1093   using MagickCore::AnyStyle;
   1094 
   1095   // Virtual pixel methods
   1096   using MagickCore::VirtualPixelMethod;
   1097   using MagickCore::UndefinedVirtualPixelMethod;
   1098   using MagickCore::BackgroundVirtualPixelMethod;
   1099   using MagickCore::DitherVirtualPixelMethod;
   1100   using MagickCore::EdgeVirtualPixelMethod;
   1101   using MagickCore::MirrorVirtualPixelMethod;
   1102   using MagickCore::RandomVirtualPixelMethod;
   1103   using MagickCore::TileVirtualPixelMethod;
   1104   using MagickCore::TransparentVirtualPixelMethod;
   1105   using MagickCore::MaskVirtualPixelMethod;
   1106   using MagickCore::BlackVirtualPixelMethod;
   1107   using MagickCore::GrayVirtualPixelMethod;
   1108   using MagickCore::WhiteVirtualPixelMethod;
   1109   using MagickCore::HorizontalTileVirtualPixelMethod;
   1110   using MagickCore::VerticalTileVirtualPixelMethod;
   1111   using MagickCore::HorizontalTileEdgeVirtualPixelMethod;
   1112   using MagickCore::VerticalTileEdgeVirtualPixelMethod;
   1113   using MagickCore::CheckerTileVirtualPixelMethod;
   1114 
   1115 #if defined(MAGICKCORE_IMPLEMENTATION)
   1116   //
   1117   // ImageMagick symbols used in implementation code
   1118   //
   1119   using MagickCore::AcquireAlignedMemory;
   1120   using MagickCore::AcquireAuthenticCacheView;
   1121   using MagickCore::AcquireDrawingWand;
   1122   using MagickCore::AcquireExceptionInfo;
   1123   using MagickCore::AcquireVirtualCacheView;
   1124   using MagickCore::AcquireImage;
   1125   using MagickCore::AcquireKernelInfo;
   1126   using MagickCore::AcquireMagickInfo;
   1127   using MagickCore::AcquireMagickMemory;
   1128   using MagickCore::AcquireQuantumInfo;
   1129   using MagickCore::AcquireString;
   1130   using MagickCore::AcquireStringInfo;
   1131   using MagickCore::AdaptiveBlurImage;
   1132   using MagickCore::AdaptiveResizeImage;
   1133   using MagickCore::AdaptiveSharpenImage;
   1134   using MagickCore::AdaptiveThresholdImage;
   1135   using MagickCore::AddNoiseImage;
   1136   using MagickCore::AffineTransformImage;
   1137   using MagickCore::AnnotateImage;
   1138   using MagickCore::AutoGammaImage;
   1139   using MagickCore::AutoLevelImage;
   1140   using MagickCore::AutoOrientImage;
   1141   using MagickCore::Base64Decode;
   1142   using MagickCore::Base64Encode;
   1143   using MagickCore::BilevelImage;
   1144   using MagickCore::BlackThresholdImage;
   1145   using MagickCore::BlobToImage;
   1146   using MagickCore::BlueShiftImage;
   1147   using MagickCore::BlurImage;
   1148   using MagickCore::BrightnessContrastImage;
   1149   using MagickCore::BorderImage;
   1150   using MagickCore::CharcoalImage;
   1151   using MagickCore::CannyEdgeImage;
   1152   using MagickCore::ChopImage;
   1153   using MagickCore::ClampImage;
   1154   using MagickCore::ClampToQuantum;
   1155   using MagickCore::ClearMagickException;
   1156   using MagickCore::CloneDrawInfo;
   1157   using MagickCore::CloneImage;
   1158   using MagickCore::CloneImageInfo;
   1159   using MagickCore::CloneQuantizeInfo;
   1160   using MagickCore::ClutImage;
   1161   using MagickCore::ColorDecisionListImage;
   1162   using MagickCore::ColorizeImage;
   1163   using MagickCore::ColorMatrixImage;
   1164   using MagickCore::CommandOptionToMnemonic;
   1165   using MagickCore::CompareImages;
   1166   using MagickCore::CompareImagesLayers;
   1167   using MagickCore::CompositeImage;
   1168   using MagickCore::ConnectedComponentsImage;
   1169   using MagickCore::ConstituteImage;
   1170   using MagickCore::ContrastImage;
   1171   using MagickCore::ContrastStretchImage;
   1172   using MagickCore::ConvertHSLToRGB;
   1173   using MagickCore::ConvertRGBToHSL;
   1174   using MagickCore::ConvolveImage;
   1175   using MagickCore::CopyImagePixels;
   1176   using MagickCore::CopyMagickString;
   1177   using MagickCore::CropImage;
   1178   using MagickCore::CropImageToTiles;
   1179   using MagickCore::CycleColormapImage;
   1180   using MagickCore::DecipherImage;
   1181   using MagickCore::DeleteImageOption;
   1182   using MagickCore::DeleteImageRegistry;
   1183   using MagickCore::DeskewImage;
   1184   using MagickCore::DespeckleImage;
   1185   using MagickCore::DestroyCacheView;
   1186   using MagickCore::DestroyDrawInfo;
   1187   using MagickCore::DestroyDrawingWand;
   1188   using MagickCore::DestroyExceptionInfo;
   1189   using MagickCore::DestroyImageInfo;
   1190   using MagickCore::DestroyImageList;
   1191   using MagickCore::DestroyKernelInfo;
   1192   using MagickCore::DestroyMagickWand;
   1193   using MagickCore::DestroyPixelWand;
   1194   using MagickCore::DestroyQuantizeInfo;
   1195   using MagickCore::DestroyQuantumInfo;
   1196   using MagickCore::DestroyString;
   1197   using MagickCore::DestroyStringInfo;
   1198   using MagickCore::DisplayImages;
   1199   using MagickCore::DistortImage;
   1200   using MagickCore::DrawAffine;
   1201   using MagickCore::DrawAlpha;
   1202   using MagickCore::DrawAnnotation;
   1203   using MagickCore::DrawArc;
   1204   using MagickCore::DrawBezier;
   1205   using MagickCore::DrawCircle;
   1206   using MagickCore::DrawColor;
   1207   using MagickCore::DrawComment;
   1208   using MagickCore::DrawComposite;
   1209   using MagickCore::DrawEllipse;
   1210   using MagickCore::DrawImage;
   1211   using MagickCore::DrawLine;
   1212   using MagickCore::DrawPathClose;
   1213   using MagickCore::DrawPathCurveToAbsolute;
   1214   using MagickCore::DrawPathCurveToQuadraticBezierAbsolute;
   1215   using MagickCore::DrawPathCurveToQuadraticBezierRelative;
   1216   using MagickCore::DrawPathCurveToQuadraticBezierSmoothAbsolute;
   1217   using MagickCore::DrawPathCurveToQuadraticBezierSmoothRelative;
   1218   using MagickCore::DrawPathCurveToRelative;
   1219   using MagickCore::DrawPathCurveToSmoothAbsolute;
   1220   using MagickCore::DrawPathCurveToSmoothRelative;
   1221   using MagickCore::DrawPathEllipticArcAbsolute;
   1222   using MagickCore::DrawPathEllipticArcRelative;
   1223   using MagickCore::DrawPathFinish;
   1224   using MagickCore::DrawPathLineToAbsolute;
   1225   using MagickCore::DrawPathLineToHorizontalAbsolute;
   1226   using MagickCore::DrawPathLineToHorizontalRelative;
   1227   using MagickCore::DrawPathLineToRelative;
   1228   using MagickCore::DrawPathLineToVerticalAbsolute;
   1229   using MagickCore::DrawPathLineToVerticalRelative;
   1230   using MagickCore::DrawPathMoveToAbsolute;
   1231   using MagickCore::DrawPathMoveToRelative;
   1232   using MagickCore::DrawPathStart;
   1233   using MagickCore::DrawPoint;
   1234   using MagickCore::DrawPolygon;
   1235   using MagickCore::DrawPolyline;
   1236   using MagickCore::DrawPopClipPath;
   1237   using MagickCore::DrawPopDefs;
   1238   using MagickCore::DrawPopPattern;
   1239   using MagickCore::DrawPushClipPath;
   1240   using MagickCore::DrawPushDefs;
   1241   using MagickCore::DrawPushPattern;
   1242   using MagickCore::DrawRectangle;
   1243   using MagickCore::DrawRender;
   1244   using MagickCore::DrawRotate;
   1245   using MagickCore::DrawRoundRectangle;
   1246   using MagickCore::DrawScale;
   1247   using MagickCore::DrawSetClipPath;
   1248   using MagickCore::DrawSetClipRule;
   1249   using MagickCore::DrawSetClipUnits;
   1250   using MagickCore::DrawSetFillColor;
   1251   using MagickCore::DrawSetFillOpacity;
   1252   using MagickCore::DrawSetFillPatternURL;
   1253   using MagickCore::DrawSetFillRule;
   1254   using MagickCore::DrawSetFont;
   1255   using MagickCore::DrawSetFontFamily;
   1256   using MagickCore::DrawSetFontSize;
   1257   using MagickCore::DrawSetFontStretch;
   1258   using MagickCore::DrawSetFontStyle;
   1259   using MagickCore::DrawSetFontWeight;
   1260   using MagickCore::DrawSetGravity;
   1261   using MagickCore::DrawSetStrokeAntialias;
   1262   using MagickCore::DrawSetStrokeColor;
   1263   using MagickCore::DrawSetStrokeDashArray;
   1264   using MagickCore::DrawSetStrokeDashOffset;
   1265   using MagickCore::DrawSetStrokeLineCap;
   1266   using MagickCore::DrawSetStrokeLineJoin;
   1267   using MagickCore::DrawSetStrokeMiterLimit;
   1268   using MagickCore::DrawSetStrokeOpacity;
   1269   using MagickCore::DrawSetStrokePatternURL;
   1270   using MagickCore::DrawSetStrokeWidth;
   1271   using MagickCore::DrawSetTextAntialias;
   1272   using MagickCore::DrawSetTextDecoration;
   1273   using MagickCore::DrawSetTextEncoding;
   1274   using MagickCore::DrawSetTextInterlineSpacing;
   1275   using MagickCore::DrawSetTextInterwordSpacing;
   1276   using MagickCore::DrawSetTextKerning;
   1277   using MagickCore::DrawSetTextUnderColor;
   1278   using MagickCore::DrawSetViewbox;
   1279   using MagickCore::DrawSkewX;
   1280   using MagickCore::DrawSkewY;
   1281   using MagickCore::DrawTranslate;
   1282   using MagickCore::EdgeImage;
   1283   using MagickCore::EmbossImage;
   1284   using MagickCore::EncipherImage;
   1285   using MagickCore::EnhanceImage;
   1286   using MagickCore::EqualizeImage;
   1287   using MagickCore::EvaluateImage;
   1288   using MagickCore::ExportImagePixels;
   1289   using MagickCore::ExportQuantumPixels;
   1290   using MagickCore::ExtentImage;
   1291   using MagickCore::FlipImage;
   1292   using MagickCore::FloodfillPaintImage;
   1293   using MagickCore::FlopImage;
   1294   using MagickCore::FormatLocaleString;
   1295   using MagickCore::ForwardFourierTransformImage;
   1296   using MagickCore::FrameImage;
   1297   using MagickCore::FxImage;
   1298   using MagickCore::GammaImage;
   1299   using MagickCore::GaussianBlurImage;
   1300   using MagickCore::GaussianBlurImage;
   1301   using MagickCore::GetAffineMatrix;
   1302   using MagickCore::GetAuthenticMetacontent;
   1303   using MagickCore::GetBlobSize;
   1304   using MagickCore::GetCacheViewAuthenticMetacontent;
   1305   using MagickCore::GetCacheViewAuthenticPixels;
   1306   using MagickCore::GetCacheViewVirtualPixels;
   1307   using MagickCore::GetClientName;
   1308   using MagickCore::GetColorTuple;
   1309   using MagickCore::GetDrawInfo;
   1310   using MagickCore::GetGeometry;
   1311   using MagickCore::GetImageArtifact;
   1312   using MagickCore::GetImageMoments;
   1313   using MagickCore::GetImageBoundingBox;
   1314   using MagickCore::GetImageDistortion;
   1315   using MagickCore::GetImageDepth;
   1316   using MagickCore::GetImageMask;
   1317   using MagickCore::GetImageMean;
   1318   using MagickCore::GetImageKurtosis;
   1319   using MagickCore::GetImageRange;
   1320   using MagickCore::GetImageDepth;
   1321   using MagickCore::GetImageInfo;
   1322   using MagickCore::GetImageInfoFile;
   1323   using MagickCore::GetImageOption;
   1324   using MagickCore::GetImagePerceptualHash;
   1325   using MagickCore::GetAuthenticPixels;
   1326   using MagickCore::GetImageProfile;
   1327   using MagickCore::GetImageProperty;
   1328   using MagickCore::GetImageQuantizeError;
   1329   using MagickCore::GetImageType;
   1330   using MagickCore::GetMagickDecoderThreadSupport;
   1331   using MagickCore::GetMagickEncoderThreadSupport;
   1332   using MagickCore::GetMagickInfo;
   1333   using MagickCore::GetMultilineTypeMetrics;
   1334   using MagickCore::GetNextValueInLinkedList;
   1335   using MagickCore::GetNumberOfElementsInLinkedList;
   1336   using MagickCore::GetPixelBlue;
   1337   using MagickCore::GetPixelChannelOffset;
   1338   using MagickCore::GetPixelChannelTraits;
   1339   using MagickCore::GetPixelGreen;
   1340   using MagickCore::GetPixelInfo;
   1341   using MagickCore::GetPixelRed;
   1342   using MagickCore::GetNumberColors;
   1343   using MagickCore::GetPageGeometry;
   1344   using MagickCore::GetQuantizeInfo;
   1345   using MagickCore::GetStringInfoDatum;
   1346   using MagickCore::GetStringInfoLength;
   1347   using MagickCore::GetTypeMetrics;
   1348   using MagickCore::GetValueFromLinkedList;
   1349   using MagickCore::GetVirtualMetacontent;
   1350   using MagickCore::GetVirtualPixels;
   1351   using MagickCore::GetImageVirtualPixelMethod;
   1352   using MagickCore::GlobExpression;
   1353   using MagickCore::GravityAdjustGeometry;
   1354   using MagickCore::GrayscaleImage;
   1355   using MagickCore::HaldClutImage;
   1356   using MagickCore::HoughLineImage;
   1357   using MagickCore::ImageToBlob;
   1358   using MagickCore::ImagesToBlob;
   1359   using MagickCore::ImplodeImage;
   1360   using MagickCore::ImportQuantumPixels;
   1361   using MagickCore::InterpretImageProperties;
   1362   using MagickCore::InverseFourierTransformImage;
   1363   using MagickCore::InvokeDynamicImageFilter;
   1364   using MagickCore::IsEventLogging;
   1365   using MagickCore::IsGeometry;
   1366   using MagickCore::IsImageOpaque;
   1367   using MagickCore::IsImagesEqual;
   1368   using MagickCore::KuwaharaImage;
   1369   using MagickCore::LevelImage;
   1370   using MagickCore::LevelImageColors;
   1371   using MagickCore::LevelizeImage;
   1372   using MagickCore::LinearStretchImage;
   1373   using MagickCore::LiquidRescaleImage;
   1374   using MagickCore::LocalContrastImage;
   1375   using MagickCore::LocaleCompare;
   1376   using MagickCore::LockSemaphoreInfo;
   1377   using MagickCore::LogMagickEvent;
   1378   using MagickCore::MagickCoreTerminus;
   1379   using MagickCore::MagickToMime;
   1380   using MagickCore::MagnifyImage;
   1381   using MagickCore::MergeImageLayers;
   1382   using MagickCore::MinifyImage;
   1383   using MagickCore::ModulateImage;
   1384   using MagickCore::MorphologyImage;
   1385   using MagickCore::MotionBlurImage;
   1386   using MagickCore::NegateImage;
   1387   using MagickCore::NewMagickWandFromImage;
   1388   using MagickCore::NewPixelWand;
   1389   using MagickCore::NormalizeImage;
   1390   using MagickCore::OilPaintImage;
   1391   using MagickCore::OpaquePaintImage;
   1392   using MagickCore::OrderedDitherImage;
   1393   using MagickCore::OptimizeImageLayers;
   1394   using MagickCore::OptimizeImageTransparency;
   1395   using MagickCore::OptimizePlusImageLayers;
   1396   using MagickCore::ParseMetaGeometry;
   1397   using MagickCore::PerceptibleImage;
   1398   using MagickCore::PingBlob;
   1399   using MagickCore::PingImage;
   1400   using MagickCore::PixelSetPixelColor;
   1401   using MagickCore::PolaroidImage;
   1402   using MagickCore::PopDrawingWand;
   1403   using MagickCore::PosterizeImage;
   1404   using MagickCore::ProfileImage;
   1405   using MagickCore::PushDrawingWand;
   1406   using MagickCore::QuantizeImage;
   1407   using MagickCore::QueueAuthenticPixels;
   1408   using MagickCore::QueueCacheViewAuthenticPixels;
   1409   using MagickCore::RaiseImage;
   1410   using MagickCore::RandomThresholdImage;
   1411   using MagickCore::ReadImage;
   1412   using MagickCore::RegisterMagickInfo;
   1413   using MagickCore::RelinquishMagickMemory;
   1414   using MagickCore::RemapImage;
   1415   using MagickCore::ResampleImage;
   1416   using MagickCore::ResetLinkedListIterator;
   1417   using MagickCore::ResizeImage;
   1418   using MagickCore::ResizeMagickMemory;
   1419   using MagickCore::RollImage;
   1420   using MagickCore::RotateImage;
   1421   using MagickCore::RotationalBlurImage;
   1422   using MagickCore::SampleImage;
   1423   using MagickCore::ScaleImage;
   1424   using MagickCore::SegmentImage;
   1425   using MagickCore::SelectiveBlurImage;
   1426   using MagickCore::SeparateImage;
   1427   using MagickCore::SepiaToneImage;
   1428   using MagickCore::SetGeometry;
   1429   using MagickCore::SetImageAlpha;
   1430   using MagickCore::SetImageArtifact;
   1431   using MagickCore::SetImageBackgroundColor;
   1432   using MagickCore::SetImageColorspace;
   1433   using MagickCore::SetImageDepth;
   1434   using MagickCore::SetImageExtent;
   1435   using MagickCore::SetImageInfo;
   1436   using MagickCore::SetImageInfoFile;
   1437   using MagickCore::SetImageMask;
   1438   using MagickCore::SetImageOption;
   1439   using MagickCore::SetImageProfile;
   1440   using MagickCore::SetImageProperty;
   1441   using MagickCore::SetImageRegistry;
   1442   using MagickCore::SetImageType;
   1443   using MagickCore::SetLogEventMask;
   1444   using MagickCore::SetMagickResourceLimit;
   1445   using MagickCore::SetImageVirtualPixelMethod;
   1446   using MagickCore::SetPixelChannel;
   1447   using MagickCore::SetImageChannelMask;
   1448   using MagickCore::SetStringInfoDatum;
   1449   using MagickCore::ShadeImage;
   1450   using MagickCore::ShadowImage;
   1451   using MagickCore::SharpenImage;
   1452   using MagickCore::SharpenImage;
   1453   using MagickCore::ShaveImage;
   1454   using MagickCore::ShearImage;
   1455   using MagickCore::SigmoidalContrastImage;
   1456   using MagickCore::SignatureImage;
   1457   using MagickCore::SimilarityImage;
   1458   using MagickCore::SketchImage;
   1459   using MagickCore::SmushImages;
   1460   using MagickCore::SolarizeImage;
   1461   using MagickCore::SparseColorImage;
   1462   using MagickCore::SpliceImage;
   1463   using MagickCore::SpreadImage;
   1464   using MagickCore::StatisticImage;
   1465   using MagickCore::SteganoImage;
   1466   using MagickCore::StereoImage;
   1467   using MagickCore::StripImage;
   1468   using MagickCore::SwirlImage;
   1469   using MagickCore::SyncCacheViewAuthenticPixels;
   1470   using MagickCore::SyncImage;
   1471   using MagickCore::SyncAuthenticPixels;
   1472   using MagickCore::TextureImage;
   1473   using MagickCore::ThrowException;
   1474   using MagickCore::TintImage;
   1475   using MagickCore::TransformImageColorspace;
   1476   using MagickCore::TransparentPaintImage;
   1477   using MagickCore::TransparentPaintImageChroma;
   1478   using MagickCore::TransposeImage;
   1479   using MagickCore::TransverseImage;
   1480   using MagickCore::TrimImage;
   1481   using MagickCore::UniqueImageColors;
   1482   using MagickCore::UnlockSemaphoreInfo;
   1483   using MagickCore::UnregisterMagickInfo;
   1484   using MagickCore::UnsharpMaskImage;
   1485   using MagickCore::VignetteImage;
   1486   using MagickCore::WaveImage;
   1487   using MagickCore::WaveletDenoiseImage;
   1488   using MagickCore::WhiteThresholdImage;
   1489   using MagickCore::WriteImage;
   1490 
   1491 #endif // MAGICKCORE_IMPLEMENTATION
   1492 
   1493 }
   1494 
   1495 //////////////////////////////////////////////////////////////////////
   1496 //
   1497 // No user-serviceable parts beyond this point
   1498 //
   1499 //////////////////////////////////////////////////////////////////////
   1500 #define GetPPException \
   1501   MagickCore::ExceptionInfo \
   1502     *exceptionInfo; \
   1503   exceptionInfo=MagickCore::AcquireExceptionInfo();
   1504 #define GetAndSetPPChannelMask(channel) \
   1505   MagickCore::ChannelType \
   1506     channel_mask; \
   1507   channel_mask=MagickCore::SetImageChannelMask(image(),channel)
   1508 #define ClonePPDrawException(wand) \
   1509   MagickCore::ExceptionInfo \
   1510     *exceptionInfo; \
   1511   exceptionInfo=MagickCore::DrawCloneExceptionInfo(wand)
   1512 #define RestorePPChannelMask \
   1513   MagickCore::SetPixelChannelMask(image(),channel_mask)
   1514 #define SetPPChannelMask(channel) \
   1515   (void) MagickCore::SetImageChannelMask(image(),channel)
   1516 #define ThrowPPDrawException(quiet) \
   1517   throwException(exceptionInfo,quiet); \
   1518   (void) MagickCore::DestroyExceptionInfo(exceptionInfo)
   1519 #define ThrowPPException(quiet) \
   1520   throwException(exceptionInfo,quiet); \
   1521   (void) MagickCore::DestroyExceptionInfo(exceptionInfo)
   1522 
   1523 #endif // Magick_Include_header
   1524