Method: Magick::Image#separate

Defined in:
ext/RMagick/rmimage.c

#separate(*args) ⇒ Object

Call SeparateImages.

Ruby usage:

- @verbatim separate @endverbatim
- @verbatim separate(channel) @endverbatim
- @verbatim separate(channel, ...) @endverbatim

Notes:

- Default channel is AllChannels

Parameters:

  • argc

    number of input arguments

  • argv

    array of input arguments

  • self

    this object

Returns:

  • a new ImageList

[View source]

11530
11531
11532
11533
11534
11535
11536
11537
11538
11539
11540
11541
11542
11543
11544
11545
11546
11547
11548
11549
11550
11551
11552
11553
# File 'ext/RMagick/rmimage.c', line 11530

VALUE
Image_separate(int argc, VALUE *argv, VALUE self)
{
    Image *image, *new_images;
    ChannelType channels = 0;
    ExceptionInfo exception;

    image = rm_check_destroyed(self);
    channels = extract_channels(&argc, argv);

    // All arguments are ChannelType enums
    if (argc > 0)
    {
        raise_ChannelType_error(argv[argc-1]);
    }

    GetExceptionInfo(&exception);
    new_images = SeparateImages(image, channels, &exception);
    rm_check_exception(&exception, new_images, DestroyOnError);
    DestroyExceptionInfo(&exception);
    rm_ensure_result(new_images);

    return rm_imagelist_from_images(new_images);
}