Method: Magick::Image#sharpen_channel

Defined in:
ext/RMagick/rmimage.c

#sharpen_channel(*args) ⇒ Object

Sharpen image on a channel.

Ruby usage:

- @verbatim Image#sharpen_channel @endverbatim
- @verbatim Image#sharpen_channel(radius) @endverbatim
- @verbatim Image#sharpen_channel(radius, sigma) @endverbatim
- @verbatim Image#sharpen_channel(radius, sigma, channel) @endverbatim
- @verbatim Image#sharpen_channel(radius, sigma, channel, ...) @endverbatim

Notes:

- Default radius is 0.0
- Default sigma is 1.0
- Default channel is AllChannels

Parameters:

  • argc

    number of input arguments

  • argv

    array of input arguments

  • self

    this object

Returns:

  • a new image


11921
11922
11923
11924
11925
11926
11927
11928
11929
11930
11931
11932
11933
11934
11935
11936
11937
11938
11939
11940
11941
11942
11943
11944
11945
11946
11947
11948
11949
11950
11951
11952
11953
11954
11955
11956
# File 'ext/RMagick/rmimage.c', line 11921

VALUE
Image_sharpen_channel(int argc, VALUE *argv, VALUE self)
{
    Image *image, *new_image;
    ChannelType channels;
    ExceptionInfo exception;
    double radius = 0.0, sigma = 1.0;

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

    // There must be 0, 1, or 2 remaining arguments.
    switch (argc)
    {
        case 2:
            sigma = NUM2DBL(argv[1]);
            /* Fall thru */
        case 1:
            radius = NUM2DBL(argv[0]);
            /* Fall thru */
        case 0:
            break;
        default:
            raise_ChannelType_error(argv[argc-1]);
    }

    new_image = rm_clone_image(image);

    GetExceptionInfo(&exception);
    (void) SharpenImageChannel(new_image, channels, radius, sigma, &exception);

    rm_check_exception(&exception, new_image, DestroyOnError);
    (void) DestroyExceptionInfo(&exception);

    return rm_image_new(new_image);
}