diff options
| author | Mike Wey | 2011-10-19 23:30:50 +0200 |
|---|---|---|
| committer | Mike Wey | 2011-10-19 23:30:50 +0200 |
| commit | 1b95c603a592deb7cef49e9787ede824b94444e0 (patch) | |
| tree | 1601b4b7cb6ed761e794f13344cc0a2ed8c5877c | |
| parent | 3b0b0d09697023b185bb8a07511ab88954dd99ee (diff) | |
Add support for imageMagick 6.6.1 to the headers.
| -rw-r--r-- | dmagick/c/colormap.d | 7 | ||||
| -rw-r--r-- | dmagick/c/draw.d | 33 | ||||
| -rw-r--r-- | dmagick/c/geometry.d | 18 | ||||
| -rw-r--r-- | dmagick/c/image.d | 18 | ||||
| -rw-r--r-- | dmagick/c/magickVersion.d | 23 | ||||
| -rw-r--r-- | dmagick/c/morphology.d | 209 |
6 files changed, 211 insertions, 97 deletions
diff --git a/dmagick/c/colormap.d b/dmagick/c/colormap.d index 53ea084..d01a039 100644 --- a/dmagick/c/colormap.d +++ b/dmagick/c/colormap.d @@ -2,12 +2,17 @@ module dmagick.c.colormap; import dmagick.c.image; import dmagick.c.magickType; +import dmagick.c.magickVersion; alias ptrdiff_t ssize_t; extern(C) { - MagickBooleanType AcquireImageColormap(Image*, const size_t); + static if (MagickLibVersion >= 0x662) + { + MagickBooleanType AcquireImageColormap(Image*, const size_t); + } + MagickBooleanType CycleColormapImage(Image*, const ssize_t); MagickBooleanType SortColormapByIntensity(Image*); } diff --git a/dmagick/c/draw.d b/dmagick/c/draw.d index df9deac..f1b7d63 100644 --- a/dmagick/c/draw.d +++ b/dmagick/c/draw.d @@ -4,6 +4,7 @@ import dmagick.c.composite; import dmagick.c.geometry; import dmagick.c.image; import dmagick.c.magickType; +import dmagick.c.magickVersion; import dmagick.c.pixel; import dmagick.c.type; @@ -34,11 +35,23 @@ extern(C) LineThroughDecoration } - enum DirectionType + static if (MagickLibVersion >= 0x662) { - UndefinedDirection, - RightToLeftDirection, - LeftToRightDirection + enum DirectionType + { + UndefinedDirection, + RightToLeftDirection, + LeftToRightDirection + } + } + else + { + enum DirectionType + { + UndefinedDirection, + LeftToRightDirection, + RightToLeftDirection + } } enum FillRule @@ -310,8 +323,16 @@ extern(C) interword_spacing, interline_spacing; - DirectionType - direction; + static if (MagickLibVersion >= 0x662) + { + DirectionType + direction; + } + else + { + double + direction; + } } struct PrimitiveInfo diff --git a/dmagick/c/geometry.d b/dmagick/c/geometry.d index 332d0d3..19a0035 100644 --- a/dmagick/c/geometry.d +++ b/dmagick/c/geometry.d @@ -31,15 +31,15 @@ extern(C) YNegative = 0x0040, ChiNegative = 0x0080, - PercentValue = 0x1000, - AspectValue = 0x2000, - NormalizeValue = 0x2000, - LessValue = 0x4000, - GreaterValue = 0x8000, - MinimumValue = 0x10000, - CorrelateNormalizeValue = 0x10000, - AreaValue = 0x20000, - DecimalValue = 0x40000, + PercentValue = 0x1000, /* '%' percentage of something */ + AspectValue = 0x2000, /* '!' resize no-aspect - special use flag */ + NormalizeValue = 0x2000, /* '!' ScaleKernelValue() in morphology.c */ + LessValue = 0x4000, /* '<' resize smaller - special use flag */ + GreaterValue = 0x8000, /* '>' resize larger - spacial use flag */ + MinimumValue = 0x10000, /* '^' special handling needed */ + CorrelateNormalizeValue = 0x10000, /* '^' see ScaleKernelValue() */ + AreaValue = 0x20000, /* '@' resize to area - special use flag */ + DecimalValue = 0x40000, /* '.' floating point numbers found */ AllValues = 0x7fffffff } diff --git a/dmagick/c/image.d b/dmagick/c/image.d index 56359be..3a5bce8 100644 --- a/dmagick/c/image.d +++ b/dmagick/c/image.d @@ -319,8 +319,11 @@ extern(C) MagickSizeType extent; - MagickBooleanType - ping; + static if ( MagickLibVersion >= 0x662 ) + { + MagickBooleanType + ping; + } static if ( MagickLibVersion >= 0x670 ) { @@ -496,6 +499,11 @@ extern(C) ImageInfo* CloneImageInfo(const(ImageInfo)*); ImageInfo* DestroyImageInfo(ImageInfo*); + static if (MagickLibVersion < 0x662) + { + MagickBooleanType AcquireImageColormap(Image*, const size_t); + } + MagickBooleanType ClipImage(Image*); MagickBooleanType ClipImagePath(Image*, const(char)*, const MagickBooleanType); MagickBooleanType GetImageAlphaChannel(const(Image)*); @@ -510,6 +518,12 @@ extern(C) MagickBooleanType SetImageAlphaChannel(Image*, const AlphaChannelType); MagickBooleanType SetImageBackgroundColor(Image*); MagickBooleanType SetImageClipMask(Image*, const(Image)*); + + static if (MagickLibVersion >= 0x662) + { + MagickBooleanType SetImageColor(Image*, const(MagickPixelPacket)*); + } + MagickBooleanType SetImageColor(Image*, const(MagickPixelPacket)*); MagickBooleanType SetImageExtent(Image*, const size_t, const size_t); MagickBooleanType SetImageInfo(ImageInfo*, const uint, ExceptionInfo*); diff --git a/dmagick/c/magickVersion.d b/dmagick/c/magickVersion.d index f9ea9f2..37a5b53 100644 --- a/dmagick/c/magickVersion.d +++ b/dmagick/c/magickVersion.d @@ -4,7 +4,28 @@ import core.stdc.config; extern(C) { - version(MagickCore_663) + version(MagickCore_660) + { + /// Defines the version of ImageMagick where these headers are based on. + enum MagickLibVersion = 0x660; + ///ditto + enum MagickLibVersionText = "6.6.0"; + } + else version(MagickCore_661) + { + /// Defines the version of ImageMagick where these headers are based on. + enum MagickLibVersion = 0x661; + ///ditto + enum MagickLibVersionText = "6.6.1"; + } + else version(MagickCore_662) + { + /// Defines the version of ImageMagick where these headers are based on. + enum MagickLibVersion = 0x662; + ///ditto + enum MagickLibVersionText = "6.6.2"; + } + else version(MagickCore_663) { /// Defines the version of ImageMagick where these headers are based on. enum MagickLibVersion = 0x663; diff --git a/dmagick/c/morphology.d b/dmagick/c/morphology.d index 696fa7a..5b5c814 100644 --- a/dmagick/c/morphology.d +++ b/dmagick/c/morphology.d @@ -14,44 +14,69 @@ extern(C) { string info = "enum KernelInfoType { - UndefinedKernel, /* equivelent to UnityKernel */ - UnityKernel, /* The no-op or 'original image' kernel */ - GaussianKernel, /* Convolution Kernels, Gaussian Based */ - DoGKernel, - LoGKernel, - BlurKernel,"; + UndefinedKernel, /* equivelent to UnityKernel */"; - static if ( MagickLibVersion < 0x663 ) + static if ( MagickLibVersion >= 0x662 ) + { + info ~= "UnityKernel, /* The no-op or 'original image' kernel */"; + } + + info ~= "GaussianKernel, /* Convolution Kernels, Gaussian Based */"; + + static if ( MagickLibVersion >= 0x662 ) + { + info ~= "DoGKernel, + LoGKernel,"; + } + + info ~= "BlurKernel,"; + + static if ( MagickLibVersion == 0x662 ) { info ~= "DOBKernel,"; } - info ~= " - CometKernel, - LaplacianKernel, /* Convolution Kernels, by Name */ - SobelKernel, - FreiChenKernel, - RobertsKernel, - PrewittKernel, - CompassKernel, - KirschKernel, - DiamondKernel, /* Shape Kernels */ - SquareKernel, - RectangleKernel,"; + info ~= "CometKernel, + LaplacianKernel, /* Convolution Kernels, by Name */"; + + static if ( MagickLibVersion < 0x662 ) + { + info ~= "DoGKernel, + LoGKernel, + RectangleKernel /* Shape Kernels */, + SquareKernel, + DiamondKernel,"; + } + + static if ( MagickLibVersion >= 0x662 ) + { + info ~= "SobelKernel, + FreiChenKernel, + RobertsKernel, + PrewittKernel, + CompassKernel, + KirschKernel, + DiamondKernel, /* Shape Kernels */ + SquareKernel, + RectangleKernel,"; + } static if ( MagickLibVersion >= 0x670 ) { info ~= "OctagonKernel,"; } - info ~= " - DiskKernel, - PlusKernel, - CrossKernel, - RingKernel, - PeaksKernel, /* Hit And Miss Kernels */ - EdgesKernel, - CornersKernel,"; + info ~= "DiskKernel, + PlusKernel,"; + + static if ( MagickLibVersion >= 0x662 ) + { + info ~= "CrossKernel, + RingKernel, + PeaksKernel, /* Hit And Miss Kernels */ + EdgesKernel, + CornersKernel,"; + } static if ( MagickLibVersion < 0x663 ) { @@ -62,64 +87,79 @@ extern(C) info ~= "ThinDiagonalsKernel,"; } - info ~= " - LineEndsKernel, - LineJunctionsKernel,"; + static if ( MagickLibVersion >= 0x662 ) + { + info ~= "LineEndsKernel, + LineJunctionsKernel,"; + } static if ( MagickLibVersion >= 0x663 ) { info ~= "RidgesKernel,"; } - info ~= " - ConvexHullKernel, - SkeletonKernel, - ChebyshevKernel, /* Distance Measuring Kernels */ - ManhattanKernel, - EuclideanKernel, - UserDefinedKernel /* User Specified Kernel Array */ + static if ( MagickLibVersion >= 0x662 ) + { + info ~= "ConvexHullKernel, + SkeletonKernel,"; + } + + info ~= "ChebyshevKernel, /* Distance Measuring Kernels */ + ManhattanKernel, + EuclideanKernel, + UserDefinedKernel /* User Specified Kernel Array */ }"; return info; }()); - enum MorphologyMethod + mixin( { - UndefinedMorphology, - - /* Convolve / Correlate weighted sums */ - ConvolveMorphology, /* Weighted Sum with reflected kernel */ - CorrelateMorphology, /* Weighted Sum using a sliding window */ - - /* Low-level Morphology methods */ - ErodeMorphology, /* Minimum Value in Neighbourhood */ - DilateMorphology, /* Maximum Value in Neighbourhood */ - ErodeIntensityMorphology, /* Pixel Pick using GreyScale Erode */ - DilateIntensityMorphology, /* Pixel Pick using GreyScale Dialate */ - DistanceMorphology, /* Add Kernel Value, take Minimum */ - - /* Second-level Morphology methods */ - OpenMorphology, /* Dilate then Erode */ - CloseMorphology, /* Erode then Dilate */ - OpenIntensityMorphology, /* Pixel Pick using GreyScale Open */ - CloseIntensityMorphology, /* Pixel Pick using GreyScale Close */ - SmoothMorphology, /* Open then Close */ - - /* Difference Morphology methods */ - EdgeInMorphology, /* Dilate difference from Original */ - EdgeOutMorphology, /* Erode difference from Original */ - EdgeMorphology, /* Dilate difference with Erode */ - TopHatMorphology, /* Close difference from Original */ - BottomHatMorphology, /* Open difference from Original */ - - /* Recursive Morphology methods */ - HitAndMissMorphology, /* Foreground/Background pattern matching */ - ThinningMorphology, /* Remove matching pixels from image */ - ThickenMorphology, /* Add matching pixels from image */ - - /* Experimental Morphology methods */ - VoronoiMorphology - } + string method = "enum MorphologyMethod + { + UndefinedMorphology, + + /* Convolve / Correlate weighted sums */ + ConvolveMorphology, /* Weighted Sum with reflected kernel */ + CorrelateMorphology, /* Weighted Sum using a sliding window */ + + /* Low-level Morphology methods */ + ErodeMorphology, /* Minimum Value in Neighbourhood */ + DilateMorphology, /* Maximum Value in Neighbourhood */ + ErodeIntensityMorphology, /* Pixel Pick using GreyScale Erode */ + DilateIntensityMorphology, /* Pixel Pick using GreyScale Dialate */ + DistanceMorphology, /* Add Kernel Value, take Minimum */ + + /* Second-level Morphology methods */ + OpenMorphology, /* Dilate then Erode */ + CloseMorphology, /* Erode then Dilate */ + OpenIntensityMorphology, /* Pixel Pick using GreyScale Open */ + CloseIntensityMorphology, /* Pixel Pick using GreyScale Close */"; + + static if ( MagickLibVersion >= 0x662 ) + { + method ~= "SmoothMorphology, /* Open then Close */"; + } + + method ~= " + /* Difference Morphology methods */ + EdgeInMorphology, /* Dilate difference from Original */ + EdgeOutMorphology, /* Erode difference from Original */ + EdgeMorphology, /* Dilate difference with Erode */ + TopHatMorphology, /* Close difference from Original */ + BottomHatMorphology, /* Open difference from Original */ + + /* Recursive Morphology methods */ + HitAndMissMorphology, /* Foreground/Background pattern matching */ + ThinningMorphology, /* Remove matching pixels from image */ + ThickenMorphology, /* Add matching pixels from image */ + + /* Experimental Morphology methods */ + VoronoiMorphology + }"; + + return method; + }()); struct KernelInfo { @@ -140,11 +180,16 @@ extern(C) minimum, maximum, negative_range, - positive_range, - angle; + positive_range; - KernelInfo* - next; + static if ( MagickLibVersion >= 0x662 ) + { + double + angle; + + KernelInfo* + next; + } size_t signature; @@ -159,6 +204,14 @@ extern(C) Image* MorphologyImage(const(Image)*, const MorphologyMethod, const ssize_t, const(KernelInfo)*, ExceptionInfo*); Image* MorphologyImageChannel(const(Image)*, const ChannelType, const MorphologyMethod, const ssize_t, const(KernelInfo)*, ExceptionInfo*); - void ScaleGeometryKernelInfo(KernelInfo*, const(char)*); + static if ( MagickLibVersion >= 0x662 ) + { + void ScaleGeometryKernelInfo(KernelInfo*, const(char)*); + } + else + { + void ScaleKernelInfo(KernelInfo*, const double, const GeometryFlags); + } + void ShowKernelInfo(const(KernelInfo)*); } |
