Method: Magick::Image#liquid_rescale

Defined in:
ext/RMagick/rmimage.c

#liquid_rescale(*args) ⇒ Object

Call the LiquidRescaleImage API.

Ruby usage:

- @verbatim Image#liquid_rescale(columns, rows) @endverbatim
- @verbatim Image#liquid_rescale(columns, rows, delta_x) @endverbatim
- @verbatim Image#liquid_rescale(columns, rows, delta_x, rigidity) @endverbatim

Notes:

- Default delta_x is 0.0
- Default rigidity is 0.0

Parameters:

  • argc

    number of input arguments

  • argv

    array of input arguments

  • self

    this object

Returns:

  • a new image

[View source]

7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
# File 'ext/RMagick/rmimage.c', line 7908

VALUE
Image_liquid_rescale(int argc, VALUE *argv, VALUE self)
{
#if defined(HAVE_LIQUIDRESCALEIMAGE)
    Image *image, *new_image;
    unsigned long cols, rows;
    double delta_x = 0.0;
    double rigidity = 0.0;
    ExceptionInfo exception;

    image = rm_check_destroyed(self);

    switch (argc)
    {
        case 4:
            rigidity = NUM2DBL(argv[3]);
        case 3:
            delta_x = NUM2DBL(argv[2]);
        case 2:
            rows = NUM2ULONG(argv[1]);
            cols = NUM2ULONG(argv[0]);
            break;
        default:
            rb_raise(rb_eArgError, "wrong number of arguments (%d for 2 to 4)", argc);
            break;
    }

    GetExceptionInfo(&exception);
    new_image = LiquidRescaleImage(image, cols, rows, delta_x, rigidity, &exception);
    rm_check_exception(&exception, new_image, DestroyOnError);
    DestroyExceptionInfo(&exception);
    rm_ensure_result(new_image);

    return rm_image_new(new_image);
#else
    argc = argc;    // defeat "unused parameter" messages
    argv = argv;
    self = self;
    rm_not_implemented();
    return(VALUE)0;
#endif
}