From ad57d01f268a8afa4e5f437922e967e43c4ce1f7 Mon Sep 17 00:00:00 2001 From: Mike Wey Date: Sat, 20 Oct 2012 19:58:00 +0200 Subject: Update to Imagemagick 6.8.0. --- GNUmakefile | 2 +- dmagick/c/colorspace.d | 12 +++++++++++- dmagick/c/fx.d | 5 +++++ dmagick/c/magickType.d | 28 +++++++++++++++++++++++----- dmagick/c/magickVersion.d | 9 ++++++++- dmagick/c/pixel.d | 12 ++++++++++++ 6 files changed, 60 insertions(+), 8 deletions(-) diff --git a/GNUmakefile b/GNUmakefile index e974bbf..1eac820 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -49,7 +49,7 @@ ifneq ("$(QUANTUMDEPTH)","Q16") VERSIONS+= -version=$(subst Q,Quantum,$(QUANTUMDEPTH)) endif -ifneq ("$(MAGICKVERSION)","679") +ifneq ("$(MAGICKVERSION)","680") VERSIONS+= -version=MagickCore_$(MAGICKVERSION) endif diff --git a/dmagick/c/colorspace.d b/dmagick/c/colorspace.d index 7f5a060..00c6240 100644 --- a/dmagick/c/colorspace.d +++ b/dmagick/c/colorspace.d @@ -155,7 +155,17 @@ extern(C) * perceptual uniformity of Luv, and the simplicity of specification * of HSV and HSL. */ - HCLColorspace + HCLColorspace, + + /** ditto */ + LCHColorspace, + + /** + * LMS is a color space represented by the response of the three types + * of cones of the human eye, named after their responsivity + * (sensitivity) at long, medium and short wavelengths. + */ + LMSColorspace } MagickBooleanType RGBTransformImage(Image*, const ColorspaceType); diff --git a/dmagick/c/fx.d b/dmagick/c/fx.d index 2da4806..08292eb 100644 --- a/dmagick/c/fx.d +++ b/dmagick/c/fx.d @@ -62,4 +62,9 @@ extern(C) MagickBooleanType PlasmaImage(Image*, const(SegmentInfo)*, size_t, size_t); MagickBooleanType SolarizeImage(Image*, const double); + + static if (MagickLibVersion >= 0x680) + { + MagickBooleanType SolarizeImageChannel(Image*, const ChannelType, const double, ExceptionInfo*); + } } diff --git a/dmagick/c/magickType.d b/dmagick/c/magickType.d index 4e770ea..e23a918 100644 --- a/dmagick/c/magickType.d +++ b/dmagick/c/magickType.d @@ -10,8 +10,13 @@ extern (C) * Quantum is an alias for the smallest integer that can hold * a pixel channel. */ - alias ubyte Quantum; - alias double MagickRealType; + alias ubyte Quantum; + alias ptrdiff_t SignedQuantum; + + static if ( MagickLibVersion >= 0x680 ) + alias float MagickRealType; + else + alias double MagickRealType; /** * The largest value that fits in a Quantum, This is the same @@ -34,6 +39,7 @@ extern (C) * a pixel channel. */ alias uint Quantum; + alias double SignedQuantum; alias double MagickRealType; /** @@ -57,6 +63,7 @@ extern (C) * a pixel channel. */ alias double Quantum; + alias double SignedQuantum; //real seems to be the same size as long double for //dmc and dmd on windows and for dmd and gcc on linux. alias real MagickRealType; @@ -81,8 +88,13 @@ extern (C) * Quantum is an alias for the smallest integer that can hold * a pixel channel. */ - alias ushort Quantum; - alias double MagickRealType; + alias ushort Quantum; + alias ptrdiff_t SignedQuantum; + + static if ( MagickLibVersion >= 0x680 ) + alias float MagickRealType; + else + alias double MagickRealType; /** * The largest value that fits in a Quantum, This is the same @@ -104,11 +116,16 @@ extern (C) enum MagickRealType MagickEpsilon = 2.220446e-16; enum MagickRealType MagickHuge = 1.0/MagickEpsilon; } - else static if ( MagickLibVersion >= 0x679 ) + else static if ( MagickLibVersion == 0x679 ) { enum MagickRealType MagickEpsilon = 1.0e-16; enum MagickRealType MagickHuge = 1.0/MagickEpsilon; } + else static if ( MagickLibVersion >= 0x680 ) + { + enum MagickRealType MagickEpsilon = 1.0e-16; + enum MagickRealType MagickHuge = 3.4e+38; + } alias uint MagickStatusType; alias long MagickOffsetType; @@ -122,6 +139,7 @@ extern (C) /// The Quantum depth ImageMagick / DMagick is compiled with. alias MAGICKCORE_QUANTUM_DEPTH MagickQuantumDepth; + enum QuantumScale = (1.0/ cast(double)QuantumRange); alias QuantumRange TransparentOpacity; /// Fully transparent Quantum. enum OpaqueOpacity = 0; /// Fully opaque Quantum. diff --git a/dmagick/c/magickVersion.d b/dmagick/c/magickVersion.d index 551033d..7969591 100644 --- a/dmagick/c/magickVersion.d +++ b/dmagick/c/magickVersion.d @@ -137,13 +137,20 @@ extern(C) ///ditto enum MagickLibVersionText = "6.7.8"; } - else + else version(MagickCore_679) { /// Defines the version of ImageMagick where these headers are based on. enum MagickLibVersion = 0x679; ///ditto enum MagickLibVersionText = "6.7.9"; } + else + { + /// Defines the version of ImageMagick where these headers are based on. + enum MagickLibVersion = 0x680; + ///ditto + enum MagickLibVersionText = "6.8.0"; + } /* * With ImageMagick 6.6.3 long and unsinged long were changed to diff --git a/dmagick/c/pixel.d b/dmagick/c/pixel.d index 6a4ff80..424fe5e 100644 --- a/dmagick/c/pixel.d +++ b/dmagick/c/pixel.d @@ -128,7 +128,19 @@ extern(C) green, red, opacity; + } + static if ( MagickLibVersion >= 0x680 ) + { + struct QuantumPixelPacket + { + Quantum + red, + green, + blue, + opacity, + index; + } } MagickBooleanType ExportImagePixels(const(Image)*, const ssize_t, const ssize_t, const size_t, const size_t, const(char)*, const StorageType, void*, ExceptionInfo*); -- cgit v1.2.3