Method: Magick::Image#dissolve
- Defined in:
- ext/RMagick/rmimage.c
permalink #dissolve(*args) ⇒ Object
Corresponds to the composite_image -dissolve operation.
Ruby usage:
- @verbatim Image#dissolve(overlay, src_percent) @endverbatim
- @verbatim Image#dissolve(overlay, src_percent, dst_percent) @endverbatim
- @verbatim Image#dissolve(overlay, src_percent, dst_percent, x_offset) @endverbatim
- @verbatim Image#dissolve(overlay, src_percent, dst_percent, x_offset, y_offset) @endverbatim
- @verbatim Image#dissolve(overlay, src_percent, dst_percent, gravity) @endverbatim
- @verbatim Image#dissolve(overlay, src_percent, dst_percent, gravity, x_offset) @endverbatim
- @verbatim Image#dissolve(overlay, src_percent, dst_percent, gravity, x_offset, y_offset) @endverbatim
Notes:
- `percent' can be a number or a string in the form "NN%"
- Default dst_percent is -1.0 (tells blend_geometry to leave it out of the
geometry string)
- Default x_offset is 0
- Default y_offset is 0
5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 |
# File 'ext/RMagick/rmimage.c', line 5028
VALUE
Image_dissolve(int argc, VALUE *argv, VALUE self)
{
Image *image, *overlay;
double src_percent, dst_percent = -1.0;
long x_offset = 0L, y_offset = 0L;
volatile VALUE composite_image, ovly;
image = rm_check_destroyed(self);
if (argc < 1)
{
rb_raise(rb_eArgError, "wrong number of arguments (%d for 2 to 6)", argc);
}
ovly = rm_cur_image(argv[0]);
overlay = rm_check_destroyed(ovly);
if (argc > 3)
{
get_composite_offsets(argc-3, &argv[3], image, overlay, &x_offset, &y_offset);
// There must be 3 arguments left
argc = 3;
}
switch (argc)
{
case 3:
dst_percent = rm_percentage(argv[2],1.0) * 100.0;
case 2:
src_percent = rm_percentage(argv[1],1.0) * 100.0;
break;
default:
rb_raise(rb_eArgError, "wrong number of arguments (%d for 2 to 6)", argc);
break;
}
composite_image = special_composite(image, overlay, src_percent, dst_percent
, x_offset, y_offset, DissolveCompositeOp);
return composite_image;
}
|