summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Wey2011-10-19 23:30:50 +0200
committerMike Wey2011-10-19 23:30:50 +0200
commit1b95c603a592deb7cef49e9787ede824b94444e0 (patch)
tree1601b4b7cb6ed761e794f13344cc0a2ed8c5877c
parent3b0b0d09697023b185bb8a07511ab88954dd99ee (diff)
Add support for imageMagick 6.6.1 to the headers.
-rw-r--r--dmagick/c/colormap.d7
-rw-r--r--dmagick/c/draw.d33
-rw-r--r--dmagick/c/geometry.d18
-rw-r--r--dmagick/c/image.d18
-rw-r--r--dmagick/c/magickVersion.d23
-rw-r--r--dmagick/c/morphology.d209
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)*);
}