# What’s new in Wand 0.7?

This guide doesn’t cover all changes in 0.7. See the full list of changes in 0.7 series.

## Python 2 Removal

Long overdue, but as Python 2 users slowly migrating to Python 3, Wand no longer has a user base to support backwards compatibility with Python 2 language. All supporting Python 2 code in `wand.compat` has been remove.

## Channel FX

Wand now supports Channel FX operations to create, copying, and/or extract data from color channels. For example, extracting a meta channel as a new image:

    >>> from wand.image import Image
    >>>
    >>> with Image(filename='tagged_image.psd') as img:
    ...     with img.channel_fx('meta') as meta:
    ...         meta.save(filename='meta_channel.png')

Each channel can be accessed by named (e.g. red, green, blue, etc) or by index (e.g. 0, 1, 2, etc). The following operations are supported:

FX | Action | Example
--- | --- | ---
`<=>` | Exchange two channels. | `red <=> green`
`=>` | Copy one channel to another. | `red => green`
`=` | Assign a constant value to a channel. | `red = 50%`
`,` | Write a new image with channels in a specified order. | `red, green, blue`
`;` | Add a new output image for the next set of channel operations. | `red; green`
`|` | move to the next input image for the source of channel data. | `| grey => alpha`

## Evaluate Images

Wand can now generate a new `Image` by evaluating the source pixel-values read into an image stack.

For example:

    >>> from wand.color import Color
    >>> from wand.image import Image
    >>>
    >>> S=dict(width=1, height=1)
    >>> with Image() as src:
    ...     # Read 50% & 25% gray images.
    ...     src.read(pseudo='xc:gray50', **S)
    ...     src.read(pseudo='xc:gray25', **S)
    ...     # Create a new image by adding pixel values.
    ...     # ( 50% + 25% = 75% )
    ...     with src.evaluate_images(operator='add') as dst:
    ...         assert dst[0, 0] == Color('gray75')

## Pyproject.toml

In an effort to modernize the codebase, Wand will start migrating from `setup.py` to `pyproject.toml`. The `setup.py` file will still be available for Wand 0.7.x releases.

Note

For “What’s New in Wand 0.6”, see previous announcements.