diff options
| author | Mike Wey | 2011-05-18 00:04:38 +0200 |
|---|---|---|
| committer | Mike Wey | 2011-05-18 00:04:38 +0200 |
| commit | 96f31224ca2b171d11b83c59dcda962afbca8b65 (patch) | |
| tree | 752d4dea58214c77d02228799e29d474a5e13aa9 /dmagick | |
| parent | 60f11f1fdd1e428f3e2203c2723cf7c7a282e561 (diff) | |
addNoise and affineTransform
Diffstat (limited to 'dmagick')
| -rw-r--r-- | dmagick/Image.d | 36 | ||||
| -rw-r--r-- | dmagick/c/MagickCore.d | 2 | ||||
| -rw-r--r-- | dmagick/c/shear.d (renamed from dmagick/c/sheer.d) | 2 |
3 files changed, 34 insertions, 6 deletions
diff --git a/dmagick/Image.d b/dmagick/Image.d index bcb827e..c357397 100644 --- a/dmagick/Image.d +++ b/dmagick/Image.d @@ -31,6 +31,7 @@ import dmagick.c.compress; import dmagick.c.draw; import dmagick.c.effect; import dmagick.c.enhance; +import dmagick.c.fx; import dmagick.c.geometry; import dmagick.c.histogram; import dmagick.c.image; @@ -45,6 +46,7 @@ import dmagick.c.quantum; import dmagick.c.resample; import dmagick.c.resize; import dmagick.c.resource; +import dmagick.c.shear; import dmagick.c.transform; import dmagick.c.threshold; @@ -254,6 +256,34 @@ class Image } /** + * Adds random noise to the specified channel or channels in the image. + * The amount of time addNoise requires depends on the NoiseType argument. + * + * Params: + * type = A NoiseType value. + * channel = 0 or more ChannelType arguments. If no channels are + * specified, adds noise to all the channels + */ + void addNoise(NoiseType type, ChannelType channel = ChannelType.DefaultChannels) + { + MagickCoreImage* image = + AddNoiseImageChannel(imageRef, channel, type, DMagickExcepionInfo()); + + imageRef = ImageRef(image); + } + + /** + * Transforms the image as specified by the affine matrix. + */ + void affineTransform(AffineMatrix affine) + { + MagickCoreImage* image = + AffineTransformImage(imageRef, &affine, DMagickExcepionInfo()); + + imageRef = ImageRef(image); + } + + /** * Extracts the pixel data from the specified rectangle. * * Params: @@ -339,7 +369,7 @@ class Image DrawInfo* drawInfo = options.drawInfo; copyString(drawInfo.text, text); - GetTypeMetrics(imageRef, drawInfo, &metric); + GetMultilineTypeMetrics(imageRef, drawInfo, &metric); copyString(drawInfo.text, null); return metric; @@ -533,12 +563,10 @@ class Image //Use the D GC to accolate the blob. GetMagickMemoryMethods(&oldMalloc, &oldRealloc, &oldFree); SetMagickMemoryMethods(&GC.malloc, &GC.realloc, &GC.free); + scope(exit) SetMagickMemoryMethods(oldMalloc, oldRealloc, oldFree); void* blob = ImageToBlob(options.imageInfo, imageRef, &length, DMagickExcepionInfo()); - //Set the memory methods back to the originals. - SetMagickMemoryMethods(oldMalloc, oldRealloc, oldFree); - return blob[0 .. length]; } diff --git a/dmagick/c/MagickCore.d b/dmagick/c/MagickCore.d index b48bcc6..2250fa0 100644 --- a/dmagick/c/MagickCore.d +++ b/dmagick/c/MagickCore.d @@ -70,7 +70,7 @@ public import dmagick.c.resize; public import dmagick.c.resource; public import dmagick.c.segment; public import dmagick.c.semaphore; -public import dmagick.c.sheer; +public import dmagick.c.shear; public import dmagick.c.signature; public import dmagick.c.splayTree; public import dmagick.c.statistic; diff --git a/dmagick/c/sheer.d b/dmagick/c/shear.d index fd53fb1..1e1dd03 100644 --- a/dmagick/c/sheer.d +++ b/dmagick/c/shear.d @@ -1,4 +1,4 @@ -module dmagick.c.sheer; +module dmagick.c.shear; import dmagick.c.exception; import dmagick.c.geometry; |
