Method: Magick::Image#radial_blur_channel
- Defined in:
- ext/RMagick/rmimage.cpp
#radial_blur_channel(angle, channel = Magick::AllChannels) ⇒ Magick::Image #radial_blur_channel(angle, *channels) ⇒ Magick::Image
Applies a radial blur to the selected image channels.
11310 11311 11312 11313 11314 11315 11316 11317 11318 11319 11320 11321 11322 11323 11324 11325 11326 11327 11328 11329 11330 11331 11332 11333 11334 11335 11336 11337 11338 11339 11340 11341 11342 11343 11344 11345 11346 11347 11348 |
# File 'ext/RMagick/rmimage.cpp', line 11310
VALUE
Image_radial_blur_channel(int argc, VALUE *argv, VALUE self)
{
Image *image, *new_image;
ExceptionInfo *exception;
ChannelType channels;
double angle;
image = rm_check_destroyed(self);
channels = extract_channels(&argc, argv);
// There must be 1 remaining argument.
if (argc == 0)
{
rb_raise(rb_eArgError, "wrong number of arguments (0 for 1 or more)");
}
else if (argc > 1)
{
raise_ChannelType_error(argv[argc-1]);
}
angle = NUM2DBL(argv[0]);
exception = AcquireExceptionInfo();
#if defined(IMAGEMAGICK_7)
BEGIN_CHANNEL_MASK(image, channels);
GVL_STRUCT_TYPE(RotationalBlurImage) args = { image, angle, exception };
new_image = (Image *)CALL_FUNC_WITHOUT_GVL(GVL_FUNC(RotationalBlurImage), &args);
CHANGE_RESULT_CHANNEL_MASK(new_image);
END_CHANNEL_MASK(image);
#else
GVL_STRUCT_TYPE(RotationalBlurImageChannel) args = { image, channels, angle, exception };
new_image = (Image *)CALL_FUNC_WITHOUT_GVL(GVL_FUNC(RotationalBlurImageChannel), &args);
#endif
rm_check_exception(exception, new_image, DestroyOnError);
DestroyExceptionInfo(exception);
return rm_image_new(new_image);
}
|