Transformation ============== .. note:: The image :file:`transform.jpg` used in this docs is taken by `Megan Trace`__, and licensed under `CC BY-NC 2.0`__. It can be found the `original photography from Flickr`__. __ http://megantracephoto.tumblr.com/ __ http://creativecommons.org/licenses/by-nc/2.0/deed.en __ http://www.flickr.com/photos/megantrace/6234830561/ .. _enhance: Enhance ------- .. versionadded:: 0.5.0 Reduce the noise of an image by applying an auto-filter. Also see :ref:`despeckle`. .. code:: from wand.image import Image with Image(filename="hummingbird.jpg") as left: with left.clone() as right: right.enhance() left.extent(width=left.width*2) left.composite(right, top=0, left=right.width) left.save(filename="hummingbird-enhance.jpg") .. image:: ../_images/hummingbird-enhance.jpg :alt: Hummingbird - Enhance .. _flip_flop: Flip and flop ------------- .. versionadded:: 0.3.0 You can make a mirror image by reflecting the pixels around the central x- or y-axis. For example, where the given image :file:`transform.jpg`: .. image:: ../_images/transform.jpg :alt: transform.jpg The following code flips the image using :meth:`Image.flip() ` method:: from wand.image import Image with Image(filename='transform.jpg') as image: with image.clone() as flipped: flipped.flip() flipped.save(filename='transform-flipped.jpg') The image :file:`transform-flipped.jpg` generated by the above code looks like: .. image:: ../_images/transform-flipped.jpg :alt: transform-flipped.jpg As like :meth:`~wand.image.BaseImage.flip()`, :meth:`~wand.image.BaseImage.flop()` does the same thing except it doesn't make a vertical mirror image but horizontal:: from wand.image import Image with Image(filename='transform.jpg') as image: with image.clone() as flopped: flopped.flop() flopped.save(filename='transform-flopped.jpg') The image :file:`transform-flopped.jpg` generated by the above code looks like: .. image:: ../_images/transform-flopped.jpg :alt: transform-flopped.jpg .. _rotate: Rotation -------- .. versionadded:: 0.1.8 :class:`~wand.image.Image` object provides a simple method to rotate images: :meth:`~wand.image.BaseImage.rotate()`. It takes a ``degree`` which can be 0 to 359. (Actually you can pass 360, 361, or more but it will be the same to 0, 1, or more respectively.) For example, where the given image :file:`transform.jpg`: .. image:: ../_images/transform.jpg :alt: transform.jpg The below code makes the image rotated 90° to right:: from wand.image import Image with Image(filename='transform.jpg') as image: with image.clone() as rotated: rotated.rotate(90) rotated.save(filename='transform-rotated-90.jpg') The generated image :file:`transform-rotated-90.jpg` looks like: .. image:: ../_images/transform-rotated-90.jpg :alt: transform-rotated-90.jpg If ``degree`` is not multiples of 90, the optional parameter ``background`` will help (its default is transparent):: from wand.color import Color from wand.image import Image with Image(filename='transform.jpg') as image: with image.clone() as rotated: rotated.rotate(135, background=Color('rgb(229,221,112)')) rotated.save(filename='transform-rotated-135.jpg') The generated image :file:`transform-rotated-135.jpg` looks like: .. image:: ../_images/transform-rotated-135.jpg :alt: transform-rotated-135.jpg .. _statistic: Statistic --------- .. versionadded:: 0.5.3 Similar to :ref:`spread`, but replaces each pixel with the result of a mathematical operation performed against neighboring pixel values. The type of statistic operation can be any of the following. - ``'gradient'`` - ``'maximum'`` - ``'mean'`` - ``'median'`` - ``'minimum'`` - ``'mode'`` - ``'nonpeak'`` - ``'root_mean_square'`` - ``'standard_deviation'`` The size neighboring pixels to evaluate can be defined by passing ``width``, and ``height`` kwargs. .. code:: from wand.image import Image with Image(filename="hummingbird.jpg") as left: with left.clone() as right: right.statistic("median", width=8, height=5) left.extent(width=left.width*2) left.composite(right, top=0, left=right.width) left.save(filename="hummingbird-statistic.jpg") .. image:: ../_images/hummingbird-statistic.jpg :alt: Hummingbird - Statistic