Skip to content

CHANNEL_MERGE

Return the merged RGBA channels of an image.Params:red : ImageThe red channel of the image.green : ImageThe green channel of the image.blue : ImageThe blue channel of the image.alpha : ImageThe alpha channel of the image.Returns:out : ImageThe image with each channel given by the appropriate channel on the respective inputs.
Python Code
import numpy as np
from flojoy import Image, flojoy


@flojoy
def CHANNEL_MERGE(red: Image, green: Image, blue: Image, alpha: Image) -> Image:
    """Return the merged RGBA channels of an image.

    Parameters
    ----------
    red : Image
        The red channel of the image.
    green : Image
        The green channel of the image.
    blue : Image
        The blue channel of the image.
    alpha : Image
        The alpha channel of the image.

    Returns
    -------
    Image
        The image with each channel given by the appropriate channel
        on the respective inputs.
    """

    try:
        r = red.r
        b = blue.b
        g = green.g
        a = alpha.a

        zeros = np.zeros(r.shape, np.uint8)
        ones = 255 * np.ones(r.shape, np.uint8)

        if not (
            np.array_equal(red.g, zeros)
            and np.array_equal(red.b, zeros)
            and np.array_equal(red.a, ones)
        ):
            raise ValueError("Red input had nonzero values for the other channels.")

        if not (
            np.array_equal(blue.r, zeros)
            and np.array_equal(blue.g, zeros)
            and np.array_equal(blue.a, ones)
        ):
            raise ValueError("Blue input had nonzero values for the other channels.")

        if not (
            np.array_equal(green.r, zeros)
            and np.array_equal(green.b, zeros)
            and np.array_equal(green.a, ones)
        ):
            raise ValueError("Green input had nonzero values for the other channels.")

        if not (
            np.array_equal(alpha.r, zeros)
            and np.array_equal(alpha.b, zeros)
            and np.array_equal(alpha.b, zeros)
        ):
            raise ValueError("Alpha input had nonzero values for the other channels.")

        return Image(r=r, b=b, g=g, a=a)
    except Exception as e:
        raise e

Find this Flojoy Block on GitHub

Example

Having problems with this example app? Join our Discord community and we will help you out!
React Flow mini map

This example shows the function of the CHANNEL_MERGE node. This node takes RGBA (Red Green Blue Alpha) layers (or channels) and merges them into a new image.