diff options
| author | Mike Wey | 2011-09-11 11:38:32 +0200 |
|---|---|---|
| committer | Mike Wey | 2011-09-11 11:38:32 +0200 |
| commit | b636368a771c4b7791244d308529bd9d44abfe99 (patch) | |
| tree | f01f3352872dc183987cefb678c5d80a4284ff63 | |
| parent | e60ae744596ca4e22ffa6097d65f50b2b5661f60 (diff) | |
Version the Headers so DMagick can be used with older versions of MagickCore.
| -rw-r--r-- | dmagick/Image.d | 24 | ||||
| -rw-r--r-- | dmagick/c/annotate.d | 12 | ||||
| -rw-r--r-- | dmagick/c/cacheView.d | 6 | ||||
| -rw-r--r-- | dmagick/c/deprecate.d | 32 | ||||
| -rw-r--r-- | dmagick/c/distort.d | 69 | ||||
| -rw-r--r-- | dmagick/c/effect.d | 66 | ||||
| -rw-r--r-- | dmagick/c/image.d | 26 | ||||
| -rw-r--r-- | dmagick/c/list.d | 15 | ||||
| -rw-r--r-- | dmagick/c/locale.d | 17 | ||||
| -rw-r--r-- | dmagick/c/magickString.d | 9 | ||||
| -rw-r--r-- | dmagick/c/magickType.d | 70 | ||||
| -rw-r--r-- | dmagick/c/magickVersion.d | 53 | ||||
| -rw-r--r-- | dmagick/c/morphology.d | 86 | ||||
| -rw-r--r-- | dmagick/c/option.d | 183 | ||||
| -rw-r--r-- | dmagick/c/pixel.d | 59 | ||||
| -rw-r--r-- | dmagick/c/property.d | 9 | ||||
| -rw-r--r-- | dmagick/c/quantize.d | 8 | ||||
| -rw-r--r-- | dmagick/c/transform.d | 8 |
18 files changed, 537 insertions, 215 deletions
diff --git a/dmagick/Image.d b/dmagick/Image.d index b7bf41e..e212d83 100644 --- a/dmagick/Image.d +++ b/dmagick/Image.d @@ -1799,8 +1799,16 @@ class Image //TODO: replace this with a statistic function? void medianFilter(size_t radius = 0) { - MagickCoreImage* image = - StatisticImage(imageRef, StatisticType.MedianStatistic, radius, radius, DMagickExceptionInfo()); + static if ( is(typeof(StatisticImage)) ) + { + MagickCoreImage* image = + StatisticImage(imageRef, StatisticType.MedianStatistic, radius, radius, DMagickExceptionInfo()); + } + else + { + MagickCoreImage* image = + MedianFilterImage(imageRef, radius, DMagickExceptionInfo()); + } imageRef = ImageRef(image); } @@ -2244,8 +2252,16 @@ class Image */ void reduceNoise(size_t radius = 0) { - MagickCoreImage* image = - StatisticImage(imageRef, StatisticType.NonpeakStatistic, radius, radius, DMagickExceptionInfo()); + static if ( is(typeof(StatisticImage)) ) + { + MagickCoreImage* image = + StatisticImage(imageRef, StatisticType.NonpeakStatistic, radius, radius, DMagickExceptionInfo()); + } + else + { + MagickCoreImage* image = + ReduceNoiseImage(imageRef, radius, DMagickExceptionInfo()); + } imageRef = ImageRef(image); } diff --git a/dmagick/c/annotate.d b/dmagick/c/annotate.d index 50738a0..283afd4 100644 --- a/dmagick/c/annotate.d +++ b/dmagick/c/annotate.d @@ -5,15 +5,23 @@ import core.sys.posix.sys.types; import dmagick.c.draw; import dmagick.c.image; import dmagick.c.magickType; +import dmagick.c.magickVersion; extern(C) { - MagickBooleanType AnnotateComponentGenesis(); + static if ( MagickLibVersion >= 0x668 ) + { + MagickBooleanType AnnotateComponentGenesis(); + } + MagickBooleanType AnnotateImage(Image*, const(DrawInfo)*); MagickBooleanType GetMultilineTypeMetrics(Image*, const(DrawInfo)*, TypeMetric*); MagickBooleanType GetTypeMetrics(Image*, const(DrawInfo)*, TypeMetric*); ssize_t FormatMagickCaption(Image*, DrawInfo*, const MagickBooleanType, TypeMetric*, char**); - void AnnotateComponentTerminus(); + static if ( MagickLibVersion >= 0x668 ) + { + void AnnotateComponentTerminus(); + } } diff --git a/dmagick/c/cacheView.d b/dmagick/c/cacheView.d index 7d423f2..3affeff 100644 --- a/dmagick/c/cacheView.d +++ b/dmagick/c/cacheView.d @@ -6,6 +6,7 @@ import dmagick.c.colorspace; import dmagick.c.exception; import dmagick.c.image; import dmagick.c.magickType; +import dmagick.c.magickVersion; import dmagick.c.pixel; extern(C) @@ -60,7 +61,10 @@ extern(C) MagickSizeType GetCacheViewExtent(const(CacheView)*); - size_t GetCacheViewChannels(const(CacheView)*); + static if ( MagickLibVersion >= 0x670 ) + { + size_t GetCacheViewChannels(const(CacheView)*); + } PixelPacket* GetCacheViewAuthenticPixelQueue(CacheView*); PixelPacket* GetCacheViewAuthenticPixels(CacheView*, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo*); diff --git a/dmagick/c/deprecate.d b/dmagick/c/deprecate.d index 04d826b..9497435 100644 --- a/dmagick/c/deprecate.d +++ b/dmagick/c/deprecate.d @@ -12,6 +12,7 @@ import dmagick.c.exception; import dmagick.c.geometry; import dmagick.c.image; import dmagick.c.magickType; +import dmagick.c.magickVersion; import dmagick.c.pixel; import dmagick.c.quantize; import dmagick.c.quantum; @@ -76,13 +77,23 @@ deprecated extern(C) Image* GetPreviousImage(const(Image)*); Image* FlattenImages(Image*, ExceptionInfo*); Image* MaximumImages(const(Image)*, ExceptionInfo*); - Image* MedianFilterImage(const Image*, const double, ExceptionInfo*); - Image* ModeImage(const(Image)*, const double, ExceptionInfo*); + + static if ( MagickLibVersion >= 0x669 ) + { + Image* MedianFilterImage(const Image*, const double, ExceptionInfo*); + Image* ModeImage(const(Image)*, const double, ExceptionInfo*); + } + Image* MinimumImages(const(Image)*, ExceptionInfo*); Image* MosaicImages(Image*, ExceptionInfo*); Image* PopImageList(Image**); Image* RecolorImage(const(Image)*, const size_t, const(double)*, ExceptionInfo*); - Image* ReduceNoiseImage(const(Image)*, const double, ExceptionInfo*); + + static if ( MagickLibVersion >= 0x669 ) + { + Image* ReduceNoiseImage(const(Image)*, const double, ExceptionInfo*); + } + Image* ShiftImageList(Image**); Image* SpliceImageList(Image*, const ssize_t, const size_t, const(Image)*, ExceptionInfo*); Image* ZoomImage(const(Image)*, const size_t, const size_t, ExceptionInfo*); @@ -107,7 +118,12 @@ deprecated extern(C) MagickBooleanType DescribeImage(Image*, FILE*, const MagickBooleanType); MagickBooleanType FormatImageAttribute(Image*, const(char)*, const(char)*, ...); MagickBooleanType FormatImageAttributeList(Image*, const(char)*, const(char)*, va_list); - MagickBooleanType FormatImagePropertyList(Image*, const(char)*, const(char)*, va_list); + + static if ( MagickLibVersion >= 0x670 ) + { + MagickBooleanType FormatImagePropertyList(Image*, const(char)*, const(char)*, va_list); + } + MagickBooleanType FuzzyColorCompare(const(Image)*, const(PixelPacket)*, const(PixelPacket)*); MagickBooleanType FuzzyOpacityCompare(const(Image)*, const(PixelPacket)*, const(PixelPacket)*); MagickBooleanType LevelImageColors(Image*, const ChannelType, const(MagickPixelPacket)*, const(MagickPixelPacket)*, const MagickBooleanType); @@ -151,8 +167,12 @@ deprecated extern(C) size_t PopImagePixels(Image*, const QuantumType, ubyte*); size_t PushImagePixels(Image*, const QuantumType, const(byte)*); - ssize_t FormatMagickString(char*, const size_t, const(char)*, ...); - ssize_t FormatMagickStringList(char*, const size_t, const(char)*, va_list); + static if ( MagickLibVersion >= 0x670 ) + { + ssize_t FormatMagickString(char*, const size_t, const(char)*, ...); + ssize_t FormatMagickStringList(char*, const size_t, const(char)*, va_list); + } + ssize_t GetImageListIndex(const(Image)*); ssize_t SetMagickRegistry(const RegistryType, const(void)*, const size_t, ExceptionInfo*); diff --git a/dmagick/c/distort.d b/dmagick/c/distort.d index 5bdd2e2..98e800c 100644 --- a/dmagick/c/distort.d +++ b/dmagick/c/distort.d @@ -3,32 +3,50 @@ module dmagick.c.distort; import dmagick.c.exception; import dmagick.c.image; import dmagick.c.magickType; +import dmagick.c.magickVersion; extern(C) { - enum DistortImageMethod + mixin( { - UndefinedDistortion, - AffineDistortion, - AffineProjectionDistortion, - ScaleRotateTranslateDistortion, - PerspectiveDistortion, - PerspectiveProjectionDistortion, - BilinearForwardDistortion, - BilinearDistortion = BilinearForwardDistortion, - BilinearReverseDistortion, - PolynomialDistortion, - ArcDistortion, - PolarDistortion, - DePolarDistortion, - Cylinder2PlaneDistortion, - Plane2CylinderDistortion, - BarrelDistortion, - BarrelInverseDistortion, - ShepardsDistortion, - ResizeDistortion, - SentinelDistortion - } + string methods = "enum DistortImageMethod + { + UndefinedDistortion, + AffineDistortion, + AffineProjectionDistortion, + ScaleRotateTranslateDistortion, + PerspectiveDistortion, + PerspectiveProjectionDistortion, + BilinearForwardDistortion, + BilinearDistortion = BilinearForwardDistortion, + BilinearReverseDistortion, + PolynomialDistortion, + ArcDistortion, + PolarDistortion, + DePolarDistortion,"; + + static if ( MagickLibVersion >= 0x671 ) + { + methods ~= "Cylinder2PlaneDistortion, + Plane2CylinderDistortion,"; + } + + methods ~= " + BarrelDistortion, + BarrelInverseDistortion, + ShepardsDistortion,"; + + static if ( MagickLibVersion >= 0x670 ) + { + methods ~= "ResizeDistortion,"; + } + + methods ~= " + SentinelDistortion + }"; + + return methods; + }()); enum SparseColorMethod { @@ -43,6 +61,11 @@ extern(C) } Image* DistortImage(const(Image)*, const DistortImageMethod, const size_t, const(double)*, MagickBooleanType, ExceptionInfo* exception); - Image* DistortResizeImage(const(Image)*, const size_t, const size_t, ExceptionInfo*); + + static if ( MagickLibVersion >= 0x670 ) + { + Image* DistortResizeImage(const(Image)*, const size_t, const size_t, ExceptionInfo*); + } + Image* SparseColorImage(const(Image)*, const ChannelType, const SparseColorMethod, const size_t, const(double)*, ExceptionInfo*); } diff --git a/dmagick/c/effect.d b/dmagick/c/effect.d index 2edebe9..16be2fd 100644 --- a/dmagick/c/effect.d +++ b/dmagick/c/effect.d @@ -3,6 +3,7 @@ module dmagick.c.effect; import dmagick.c.exception; import dmagick.c.image; import dmagick.c.magickType; +import dmagick.c.magickVersion; import dmagick.c.morphology; extern(C) @@ -41,18 +42,35 @@ extern(C) JPEGPreview } - enum StatisticType + mixin( { - UndefinedStatistic, - GradientStatistic, - MaximumStatistic, - MeanStatistic, - MedianStatistic, - MinimumStatistic, - ModeStatistic, - NonpeakStatistic, - StandardDeviationStatistic - } + string types = "enum StatisticType + { + UndefinedStatistic,"; + + static if ( MagickLibVersion >= 0x670 ) + { + types ~= "GradientStatistic,"; + } + + types ~= " + MaximumStatistic, + MeanStatistic, + MedianStatistic, + MinimumStatistic, + ModeStatistic, + NonpeakStatistic,"; + + static if ( MagickLibVersion >= 0x670 ) + { + types ~= "StandardDeviationStatistic,"; + } + + types ~= " + }"; + + return types; + }()); Image* AdaptiveBlurImage(const(Image)*, const double, const double, ExceptionInfo*); Image* AdaptiveBlurImageChannel(const(Image)*, const ChannelType, const double, const double, ExceptionInfo*); @@ -69,19 +87,41 @@ extern(C) Image* FilterImageChannel(const(Image)*, const ChannelType, const(KernelInfo)*, ExceptionInfo*); Image* GaussianBlurImage(const(Image)*, const double, const double, ExceptionInfo*); Image* GaussianBlurImageChannel(const(Image)*, const ChannelType, const double, const double, ExceptionInfo*); + + static if ( MagickLibVersion < 0x669 ) + { + Image* MedianFilterImage(const(Image)*, const double, ExceptionInfo*); + } + + static if ( MagickLibVersion == 0x668 ) + { + Image* ModeImage(const(Image)*, const double, ExceptionInfo*); + } + Image* MotionBlurImage(const(Image)*, const double, const double, const double, ExceptionInfo*); Image* MotionBlurImageChannel(const(Image)*, const ChannelType, const double, const double, const double, ExceptionInfo*); Image* PreviewImage(const(Image)*, const PreviewType, ExceptionInfo*); Image* RadialBlurImage(const(Image)*, const double, ExceptionInfo*); Image* RadialBlurImageChannel(const(Image)*, const ChannelType, const double, ExceptionInfo*); + + static if ( MagickLibVersion < 0x669 ) + { + Image* ReduceNoiseImage(const(Image)*, const double, ExceptionInfo*); + } + Image* SelectiveBlurImage(const(Image)*, const double, const double, const double, ExceptionInfo*); Image* SelectiveBlurImageChannel(const(Image)*, const ChannelType, const double, const double, const double, ExceptionInfo*); Image* ShadeImage(const(Image)*, const MagickBooleanType, const double, const double, ExceptionInfo*); Image* SharpenImage(const(Image)*, const double, const double, ExceptionInfo*); Image* SharpenImageChannel(const(Image)*, const ChannelType ,const double, const double, ExceptionInfo*); Image* SpreadImage(const(Image)*, const double, ExceptionInfo*); - Image* StatisticImage(const(Image)*, const StatisticType, const size_t, const size_t, ExceptionInfo*); - Image* StatisticImageChannel(const(Image)*, const ChannelType, const StatisticType, const size_t, const size_t, ExceptionInfo*); + + static if ( MagickLibVersion >= 0x669 ) + { + Image* StatisticImage(const(Image)*, const StatisticType, const size_t, const size_t, ExceptionInfo*); + Image* StatisticImageChannel(const(Image)*, const ChannelType, const StatisticType, const size_t, const size_t, ExceptionInfo*); + } + Image* UnsharpMaskImage(const(Image)*, const double, const double, const double, const double, ExceptionInfo*); Image* UnsharpMaskImageChannel(const(Image)*, const ChannelType, const double, const double, const double, const double, ExceptionInfo*); } diff --git a/dmagick/c/image.d b/dmagick/c/image.d index 9948841..1b35c48 100644 --- a/dmagick/c/image.d +++ b/dmagick/c/image.d @@ -14,6 +14,7 @@ import dmagick.c.exception; import dmagick.c.geometry; import dmagick.c.layer; import dmagick.c.magickType; +import dmagick.c.magickVersion; import dmagick.c.monitor; import dmagick.c.pixel; import dmagick.c.profile; @@ -320,8 +321,11 @@ extern(C) MagickBooleanType ping; - size_t - channels; + static if ( MagickLibVersion >= 0x670 ) + { + size_t + channels; + } } struct ImageInfo @@ -481,7 +485,11 @@ extern(C) Image* NewMagickImage(const(ImageInfo)*, const size_t, const size_t, const(MagickPixelPacket)*); Image* ReferenceImage(Image*); Image* SeparateImages(const(Image)*, const ChannelType, ExceptionInfo*); - Image* SmushImages(const(Image)*, const MagickBooleanType, const ssize_t, ExceptionInfo*); + + static if ( MagickLibVersion >= 0x668 ) + { + Image* SmushImages(const(Image)*, const MagickBooleanType, const ssize_t, ExceptionInfo*); + } ImageInfo* AcquireImageInfo(); ImageInfo* CloneImageInfo(const(ImageInfo)*); @@ -506,7 +514,12 @@ extern(C) MagickBooleanType SetImageInfo(ImageInfo*, const uint, ExceptionInfo*); MagickBooleanType SetImageMask(Image*, const(Image)*); MagickBooleanType SetImageOpacity(Image*, const Quantum); - MagickBooleanType SetImageChannels(Image*, const size_t); + + static if ( MagickLibVersion >= 0x670 ) + { + MagickBooleanType SetImageChannels(Image*, const size_t); + } + MagickBooleanType SetImageStorageClass(Image*, const ClassType); MagickBooleanType SetImageType(Image*, const ImageType); MagickBooleanType StripImage(Image*); @@ -518,7 +531,10 @@ extern(C) ssize_t GetImageReferenceCount(Image*); - size_t GetImageChannels(Image*); + static if ( MagickLibVersion >= 0x670 ) + { + size_t GetImageChannels(Image*); + } VirtualPixelMethod GetImageVirtualPixelMethod(const(Image)*); VirtualPixelMethod SetImageVirtualPixelMethod(const(Image)*, const VirtualPixelMethod); diff --git a/dmagick/c/list.d b/dmagick/c/list.d index 81eb69b..2a7e195 100644 --- a/dmagick/c/list.d +++ b/dmagick/c/list.d @@ -4,13 +4,19 @@ import core.sys.posix.sys.types; import dmagick.c.exception; import dmagick.c.image; +import dmagick.c.magickVersion; extern(C) { Image* CloneImageList(const(Image)*, ExceptionInfo*); Image* CloneImages(const(Image)*, const(char)*, ExceptionInfo*); Image* DestroyImageList(Image*); - Image* DuplicateImages(Image*, const size_t, const char*, ExceptionInfo*); + + static if ( MagickLibVersion >= 0x669 ) + { + Image* DuplicateImages(Image*, const size_t, const char*, ExceptionInfo*); + } + Image* GetFirstImageInList(const(Image)*); Image* GetImageFromList(const(Image)*, const ssize_t); Image* GetLastImageInList(const(Image)*); @@ -35,7 +41,12 @@ extern(C) void InsertImageInList(Image**, Image*); void PrependImageToList(Image**, Image*); void ReplaceImageInList(Image**, Image*); - void ReplaceImageInListReturnLast(Image**, Image*); + + static if ( MagickLibVersion >= 0x669 ) + { + void ReplaceImageInListReturnLast(Image**, Image*); + } + void ReverseImageList(Image**); void SyncImageList(Image*); } diff --git a/dmagick/c/locale.d b/dmagick/c/locale.d index e302f92..de9f435 100644 --- a/dmagick/c/locale.d +++ b/dmagick/c/locale.d @@ -7,6 +7,7 @@ import core.vararg; import dmagick.c.exception; import dmagick.c.hashmap; import dmagick.c.magickType; +import dmagick.c.magickVersion; extern(C) { @@ -35,7 +36,10 @@ extern(C) const(LocaleInfo)* GetLocaleInfo_(const(char)*, ExceptionInfo*); const(LocaleInfo)** GetLocaleInfoList(const(char)*, size_t*, ExceptionInfo*); - double InterpretLocaleValue(const(char)*, char**); + static if ( MagickLibVersion >= 0x670 ) + { + double InterpretLocaleValue(const(char)*, char**); + } LinkedListInfo* DestroyLocaleOptions(LinkedListInfo*); LinkedListInfo* GetLocaleOptions(const(char)*, ExceptionInfo*); @@ -43,10 +47,13 @@ extern(C) MagickBooleanType ListLocaleInfo(FILE*, ExceptionInfo*); MagickBooleanType LocaleComponentGenesis(); - ssize_t FormatLocaleFile(FILE*, const(char)*, ...); - ssize_t FormatLocaleFileList(FILE*, const(char)*, va_list); - ssize_t FormatLocaleString(char*, const size_t, const(char)*, ...); - ssize_t FormatLocaleStringList(char*, const size_t, const(char)*, va_list); + static if ( MagickLibVersion >= 0x670 ) + { + ssize_t FormatLocaleFile(FILE*, const(char)*, ...); + ssize_t FormatLocaleFileList(FILE*, const(char)*, va_list); + ssize_t FormatLocaleString(char*, const size_t, const(char)*, ...); + ssize_t FormatLocaleStringList(char*, const size_t, const(char)*, va_list); + } void LocaleComponentTerminus(); } diff --git a/dmagick/c/magickString.d b/dmagick/c/magickString.d index 8c5f939..7281f0c 100644 --- a/dmagick/c/magickString.d +++ b/dmagick/c/magickString.d @@ -3,9 +3,11 @@ module dmagick.c.magickString; import core.stdc.stdio; import core.stdc.time; import core.sys.posix.sys.types; +import core.vararg; import dmagick.c.exception; import dmagick.c.magickType; +import dmagick.c.magickVersion; extern(C) { @@ -50,6 +52,13 @@ extern(C) size_t GetStringInfoLength(const(StringInfo)*); ssize_t FormatMagickSize(const MagickSizeType, const MagickBooleanType, char*); + + static if ( MagickLibVersion < 0x670 ) + { + ssize_t FormatMagickString(char*, const size_t, const(char)*, ...); + ssize_t FormatMagickStringList(char*, const size_t, const(char)*, va_list); + } + ssize_t FormatMagickTime(const time_t, const size_t, char*); StringInfo* AcquireStringInfo(const size_t); diff --git a/dmagick/c/magickType.d b/dmagick/c/magickType.d index 9d92e4c..f2eabb0 100644 --- a/dmagick/c/magickType.d +++ b/dmagick/c/magickType.d @@ -1,5 +1,7 @@ module dmagick.c.magickType; +import dmagick.c.magickVersion; + extern (C) { version(Quantum8) @@ -63,30 +65,52 @@ extern (C) enum MaxTextExtent = 4096; enum OpaqueOpacity = 0; - enum ChannelType + mixin( { - UndefinedChannel, - RedChannel = 0x0001, - GrayChannel = 0x0001, - CyanChannel = 0x0001, - GreenChannel = 0x0002, - MagentaChannel = 0x0002, - BlueChannel = 0x0004, - YellowChannel = 0x0004, - AlphaChannel = 0x0008, - OpacityChannel = 0x0008, - MatteChannel = 0x0008, // deprecated - BlackChannel = 0x0020, - IndexChannel = 0x0020, - CompositeChannels = 0x002F, - AllChannels = 0x7FFFFFF, - - TrueAlphaChannel = 0x0040, // extract actual alpha channel from opacity - RGBChannels = 0x0080, // set alpha from grayscale mask in RGB - GrayChannels = 0x0080, - SyncChannels = 0x0100, // channels should be modified equally - DefaultChannels = ( (AllChannels | SyncChannels) &~ OpacityChannel) - } + string channels = "enum ChannelType + { + UndefinedChannel, + RedChannel = 0x0001, + GrayChannel = 0x0001, + CyanChannel = 0x0001, + GreenChannel = 0x0002, + MagentaChannel = 0x0002, + BlueChannel = 0x0004, + YellowChannel = 0x0004, + AlphaChannel = 0x0008, + OpacityChannel = 0x0008, + MatteChannel = 0x0008, // deprecated + BlackChannel = 0x0020, + IndexChannel = 0x0020, + CompositeChannels = 0x002F,"; + + static if ( MagickLibVersion < 0x670 ) + { + channels ~= "AllChannels = 0x002F,"; + } + else static if ( MagickLibVersion == 0x670 ) + { + channels ~= "AllChannels = ~0UL,"; + } + else static if ( MagickLibVersion == 0x671 ) + { + channels ~= "AllChannels = ~0L,"; + } + else + { + channels ~= "AllChannels = 0x7FFFFFF,"; + } + + channels ~= " + TrueAlphaChannel = 0x0040, // extract actual alpha channel from opacity + RGBChannels = 0x0080, // set alpha from grayscale mask in RGB + GrayChannels = 0x0080, + SyncChannels = 0x0100, // channels should be modified equally + DefaultChannels = ( (AllChannels | SyncChannels) &~ OpacityChannel) + }"; + + return channels; + }()); enum ClassType { diff --git a/dmagick/c/magickVersion.d b/dmagick/c/magickVersion.d index 4b9a0e5..7422c13 100644 --- a/dmagick/c/magickVersion.d +++ b/dmagick/c/magickVersion.d @@ -2,10 +2,55 @@ module dmagick.c.magickVersion; extern(C) { - /// Defines the version of ImageMagick where these headers are based on. - enum MagickLibVersion = 0x672; - ///ditto - enum MagickLibVersionText = "6.7.2"; + version(MagickCore_666) + { + /// Defines the version of ImageMagick where these headers are based on. + enum MagickLibVersion = 0x666; + ///ditto + enum MagickLibVersionText = "6.6.6"; + } + else version(MagickCore_667) + { + /// Defines the version of ImageMagick where these headers are based on. + enum MagickLibVersion = 0x667; + ///ditto + enum MagickLibVersionText = "6.6.7"; + } + else version(MagickCore_668) + { + /// Defines the version of ImageMagick where these headers are based on. + enum MagickLibVersion = 0x668; + ///ditto + enum MagickLibVersionText = "6.6.8"; + } + else version(MagickCore_669) + { + /// Defines the version of ImageMagick where these headers are based on. + enum MagickLibVersion = 0x669; + ///ditto + enum MagickLibVersionText = "6.6.9"; + } + else version(MagickCore_670) + { + /// Defines the version of ImageMagick where these headers are based on. + enum MagickLibVersion = 0x670; + ///ditto + enum MagickLibVersionText = "6.7.0"; + } + else version(MagickCore_671) + { + /// Defines the version of ImageMagick where these headers are based on. + enum MagickLibVersion = 0x671; + ///ditto + enum MagickLibVersionText = "6.7.1"; + } + else + { + /// Defines the version of ImageMagick where these headers are based on. + enum MagickLibVersion = 0x672; + ///ditto + enum MagickLibVersionText = "6.7.2"; + } char* GetMagickHomeURL(); diff --git a/dmagick/c/morphology.d b/dmagick/c/morphology.d index fa6ffd3..c48c6ba 100644 --- a/dmagick/c/morphology.d +++ b/dmagick/c/morphology.d @@ -6,47 +6,59 @@ import dmagick.c.exception; import dmagick.c.geometry; import dmagick.c.image; import dmagick.c.magickType; +import dmagick.c.magickVersion; extern(C) { - enum KernelInfoType + mixin( { - UndefinedKernel, /* equivelent to UnityKernel */ - UnityKernel, /* The no-op or 'original image' kernel */ - GaussianKernel, /* Convolution Kernels, Gaussian Based */ - DoGKernel, - LoGKernel, - BlurKernel, - CometKernel, - LaplacianKernel, /* Convolution Kernels, by Name */ - SobelKernel, - FreiChenKernel, - RobertsKernel, - PrewittKernel, - CompassKernel, - KirschKernel, - DiamondKernel, /* Shape Kernels */ - SquareKernel, - RectangleKernel, - OctagonKernel, - DiskKernel, - PlusKernel, - CrossKernel, - RingKernel, - PeaksKernel, /* Hit And Miss Kernels */ - EdgesKernel, - CornersKernel, - ThinDiagonalsKernel, - LineEndsKernel, - LineJunctionsKernel, - RidgesKernel, - ConvexHullKernel, - SkeletonKernel, - ChebyshevKernel, /* Distance Measuring Kernels */ - ManhattanKernel, - EuclideanKernel, - UserDefinedKernel /* User Specified Kernel Array */ - } + string info = "enum KernelInfoType + { + UndefinedKernel, /* equivelent to UnityKernel */ + UnityKernel, /* The no-op or 'original image' kernel */ + GaussianKernel, /* Convolution Kernels, Gaussian Based */ + DoGKernel, + LoGKernel, + BlurKernel, + CometKernel, + LaplacianKernel, /* Convolution Kernels, by Name */ + 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, + ThinDiagonalsKernel, + LineEndsKernel, + LineJunctionsKernel, + RidgesKernel, + ConvexHullKernel, + SkeletonKernel, + ChebyshevKernel, /* Distance Measuring Kernels */ + ManhattanKernel, + EuclideanKernel, + UserDefinedKernel /* User Specified Kernel Array */ + }"; + + return info; + }()); enum MorphologyMethod { diff --git a/dmagick/c/option.d b/dmagick/c/option.d index 915796a..655582f 100644 --- a/dmagick/c/option.d +++ b/dmagick/c/option.d @@ -6,80 +6,101 @@ import core.sys.posix.sys.types; import dmagick.c.exception; import dmagick.c.image; import dmagick.c.magickType; +import dmagick.c.magickVersion; extern(C) { - enum CommandOption + mixin( { - MagickUndefinedOptions = -1, - MagickAlignOptions = 0, - MagickAlphaOptions, - MagickBooleanOptions, - MagickChannelOptions, - MagickClassOptions, - MagickClipPathOptions, - MagickCoderOptions, - MagickColorOptions, - MagickColorspaceOptions, - MagickCommandOptions, - MagickComposeOptions, - MagickCompressOptions, - MagickConfigureOptions, - MagickDataTypeOptions, - MagickDebugOptions, - MagickDecorateOptions, - MagickDelegateOptions, - MagickDirectionOptions, - MagickDisposeOptions, - MagickDistortOptions, - MagickDitherOptions, - MagickEndianOptions, - MagickEvaluateOptions, - MagickFillRuleOptions, - MagickFilterOptions, - MagickFontOptions, - MagickFontsOptions, - MagickFormatOptions, - MagickFunctionOptions, - MagickGravityOptions, - MagickIntentOptions, - MagickInterlaceOptions, - MagickInterpolateOptions, - MagickKernelOptions, - MagickLayerOptions, - MagickLineCapOptions, - MagickLineJoinOptions, - MagickListOptions, - MagickLocaleOptions, - MagickLogEventOptions, - MagickLogOptions, - MagickMagicOptions, - MagickMethodOptions, - MagickMetricOptions, - MagickMimeOptions, - MagickModeOptions, - MagickModuleOptions, - MagickMorphologyOptions, - MagickNoiseOptions, - MagickOrientationOptions, - MagickPolicyOptions, - MagickPolicyDomainOptions, - MagickPolicyRightsOptions, - MagickPreviewOptions, - MagickPrimitiveOptions, - MagickQuantumFormatOptions, - MagickResolutionOptions, - MagickResourceOptions, - MagickSparseColorOptions, - MagickStatisticOptions, - MagickStorageOptions, - MagickStretchOptions, - MagickStyleOptions, - MagickThresholdOptions, - MagickTypeOptions, - MagickValidateOptions, - MagickVirtualPixelOptions - } + string options = "enum CommandOption + { + MagickUndefinedOptions = -1, + MagickAlignOptions = 0, + MagickAlphaOptions, + MagickBooleanOptions, + MagickChannelOptions, + MagickClassOptions, + MagickClipPathOptions, + MagickCoderOptions, + MagickColorOptions, + MagickColorspaceOptions, + MagickCommandOptions, + MagickComposeOptions, + MagickCompressOptions, + MagickConfigureOptions, + MagickDataTypeOptions, + MagickDebugOptions, + MagickDecorateOptions, + MagickDelegateOptions, + MagickDirectionOptions, + MagickDisposeOptions, + MagickDistortOptions, + MagickDitherOptions, + MagickEndianOptions, + MagickEvaluateOptions, + MagickFillRuleOptions, + MagickFilterOptions, + MagickFontOptions, + MagickFontsOptions, + MagickFormatOptions, + MagickFunctionOptions, + MagickGravityOptions,"; + + static if ( MagickLibVersion < 0x670 ) + { + options ~= "MagickImageListOptions,"; + } + + options ~= " + MagickIntentOptions, + MagickInterlaceOptions, + MagickInterpolateOptions, + MagickKernelOptions, + MagickLayerOptions, + MagickLineCapOptions, + MagickLineJoinOptions, + MagickListOptions, + MagickLocaleOptions, + MagickLogEventOptions, + MagickLogOptions, + MagickMagicOptions, + MagickMethodOptions, + MagickMetricOptions, + MagickMimeOptions, + MagickModeOptions, + MagickModuleOptions, + MagickMorphologyOptions, + MagickNoiseOptions, + MagickOrientationOptions, + MagickPolicyOptions, + MagickPolicyDomainOptions, + MagickPolicyRightsOptions, + MagickPreviewOptions, + MagickPrimitiveOptions, + MagickQuantumFormatOptions, + MagickResolutionOptions, + MagickResourceOptions, + MagickSparseColorOptions,"; + + static if ( MagickLibVersion >= 0x669 ) + { + options ~= "MagickStatisticOptions,"; + } + + options ~= " + MagickStorageOptions, + MagickStretchOptions, + MagickStyleOptions, + MagickThresholdOptions, + MagickTypeOptions, + MagickValidateOptions, + MagickVirtualPixelOptions + }"; + + return options; + }()); + + alias CommandOption MagickOption; enum ValidateType { @@ -119,8 +140,13 @@ extern(C) mnemonic; ssize_t - type, - flags; + type; + + static if ( MagickLibVersion >= 0x670 ) + { + ssize_t + flags; + } MagickBooleanType stealth; @@ -140,11 +166,22 @@ extern(C) MagickBooleanType ListCommandOptions(FILE*, const CommandOption, ExceptionInfo*); MagickBooleanType SetImageOption(ImageInfo*, const(char)*, const(char)*); - ssize_t GetCommandOptionFlags(const CommandOption, const MagickBooleanType, const(char)*); + static if ( MagickLibVersion >= 0x670 ) + { + ssize_t GetCommandOptionFlags(const CommandOption, const MagickBooleanType, const(char)*); + } + ssize_t ParseChannelOption(const(char)*); ssize_t ParseCommandOption(const CommandOption, const MagickBooleanType, const(char)*); void DestroyImageOptions(ImageInfo*); void ResetImageOptions(const(ImageInfo)*); void ResetImageOptionIterator(const(ImageInfo)*); + + //Renamed functions in 6.7.0 + alias GetCommandOptions GetMagickOptions; + alias CommandOptionToMnemonic MagickOptionToMnemonic; + alias IsCommandOption IsMagickOption; + alias ListCommandOptions ListMagickOptions; + alias ParseCommandOption ParseMagickOption; } diff --git a/dmagick/c/pixel.d b/dmagick/c/pixel.d index fd6ed6e..2f8b806 100644 --- a/dmagick/c/pixel.d +++ b/dmagick/c/pixel.d @@ -8,6 +8,7 @@ import dmagick.c.constitute; import dmagick.c.exception; import dmagick.c.image; import dmagick.c.magickType; +import dmagick.c.magickVersion; extern(C) { @@ -24,21 +25,45 @@ extern(C) SplineInterpolatePixel } - enum PixelComponent + + static if ( MagickLibVersion >= 0x671 ) + { + enum PixelComponent + { + PixelRed = 0, + PixelCyan = 0, + PixelGray = 0, + PixelY = 0, + PixelGreen = 1, + PixelMagenta = 1, + PixelCb = 1, + PixelBlue = 2, + PixelYellow = 2, + PixelCr = 2, + PixelAlpha = 3, + PixelBlack = 4, + PixelIndex = 4, + } + } + else { - PixelRed = 0, - PixelCyan = 0, - PixelGray = 0, - PixelY = 0, - PixelGreen = 1, - PixelMagenta = 1, - PixelCb = 1, - PixelBlue = 2, - PixelYellow = 2, - PixelCr = 2, - PixelAlpha = 3, - PixelBlack = 4, - PixelIndex = 4, + enum PixelComponent + { + RedPixelComponent = 0, + CyanPixelComponent = 0, + GrayPixelComponent = 0, + YPixelComponent = 0, + GreenPixelComponent = 1, + MagentaPixelComponent = 1, + CbPixelComponent = 1, + BluePixelComponent = 2, + YellowPixelComponent = 2, + CrPixelComponent = 2, + AlphaPixelComponent = 3, + BlackPixelComponent = 4, + IndexPixelComponent = 4, + MaskPixelComponent = 5 + } } struct DoublePixelPacket @@ -100,7 +125,11 @@ extern(C) MagickBooleanType ExportImagePixels(const(Image)*, const ssize_t, const ssize_t, const size_t, const size_t, const(char)*, const StorageType, void*, ExceptionInfo*); MagickBooleanType ImportImagePixels(Image*, const ssize_t, const ssize_t, const size_t, const size_t, const(char)*, const StorageType, const(void)*); - MagickBooleanType InterpolateMagickPixelPacket(const Image*, const CacheView*, const InterpolatePixelMethod, const double, const double, MagickPixelPacket*, ExceptionInfo*); + + static if ( MagickLibVersion >= 0x669 ) + { + MagickBooleanType InterpolateMagickPixelPacket(const Image*, const CacheView*, const InterpolatePixelMethod, const double, const double, MagickPixelPacket*, ExceptionInfo*); + } void GetMagickPixelPacket(const(Image)*, MagickPixelPacket*); } diff --git a/dmagick/c/property.d b/dmagick/c/property.d index 90ffd9f..912e7be 100644 --- a/dmagick/c/property.d +++ b/dmagick/c/property.d @@ -1,7 +1,10 @@ module dmagick.c.property; +import core.vararg; + import dmagick.c.image; import dmagick.c.magickType; +import dmagick.c.magickVersion; extern(C) { @@ -16,6 +19,12 @@ extern(C) MagickBooleanType DefineImageProperty(Image*, const(char)*); MagickBooleanType DeleteImageProperty(Image*, const(char)*); MagickBooleanType FormatImageProperty(Image*, const(char)*, const(char)*, ...); + + static if ( MagickLibVersion < 0x670 ) + { + MagickBooleanType FormatImagePropertyList(Image*, const(char)*, const(char)*, va_list); + } + MagickBooleanType SetImageProperty(Image*, const(char)*, const(char)*); void DestroyImageProperties(Image*); diff --git a/dmagick/c/quantize.d b/dmagick/c/quantize.d index 9ab262f..53983b9 100644 --- a/dmagick/c/quantize.d +++ b/dmagick/c/quantize.d @@ -3,6 +3,7 @@ module dmagick.c.quantize; import dmagick.c.colorspace; import dmagick.c.image; import dmagick.c.magickType; +import dmagick.c.magickVersion; extern(C) { @@ -41,7 +42,12 @@ extern(C) MagickBooleanType CompressImageColormap(Image*); MagickBooleanType GetImageQuantizeError(Image*); MagickBooleanType PosterizeImage(Image*, const size_t, const MagickBooleanType); - MagickBooleanType PosterizeImageChannel(Image*, const ChannelType, const size_t, const MagickBooleanType); + + static if ( MagickLibVersion >= 0x668 ) + { + MagickBooleanType PosterizeImageChannel(Image*, const ChannelType, const size_t, const MagickBooleanType); + } + MagickBooleanType QuantizeImage(const(QuantizeInfo)*, Image*); MagickBooleanType QuantizeImages(const(QuantizeInfo)*, Image*); MagickBooleanType RemapImage(const(QuantizeInfo)*, Image*, const(Image)*); diff --git a/dmagick/c/transform.d b/dmagick/c/transform.d index fd7ab12..fd413ea 100644 --- a/dmagick/c/transform.d +++ b/dmagick/c/transform.d @@ -6,13 +6,19 @@ import dmagick.c.exception; import dmagick.c.geometry; import dmagick.c.image; import dmagick.c.magickType; +import dmagick.c.magickVersion; extern(C) { Image* ChopImage(const(Image)*, const(RectangleInfo)*, ExceptionInfo*); Image* ConsolidateCMYKImages(const(Image)*, ExceptionInfo*); Image* CropImage(const(Image)*, const(RectangleInfo)*, ExceptionInfo*); - Image* CropImageToTiles(const(Image)*, const(char)*, ExceptionInfo*); + + static if ( MagickLibVersion >= 0x669 ) + { + Image* CropImageToTiles(const(Image)*, const(char)*, ExceptionInfo*); + } + Image* ExcerptImage(const(Image)*, const(RectangleInfo)*, ExceptionInfo*); Image* ExtentImage(const(Image)*, const(RectangleInfo)*, ExceptionInfo*); Image* FlipImage(const(Image)*, ExceptionInfo*); |
