Method: Magick::Image#deskew
- Defined in:
- ext/RMagick/rmimage.c
permalink #deskew(*args) ⇒ Object
Implement convert -deskew option.
Ruby usage:
- @verbatim Image#deskew @endverbatim
- @verbatim Image#deskew(threshold) @endverbatim
- @verbatim Image#deskew(threshold, auto-crop-width) @endverbatim
Notes:
- Default threshold is 0.40
- Default auto-crop-width is the auto crop width of the image
4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 |
# File 'ext/RMagick/rmimage.c', line 4605
VALUE
Image_deskew(int argc, VALUE *argv, VALUE self)
{
#if defined(HAVE_DESKEWIMAGE)
Image *image, *new_image;
double threshold = 40.0 * QuantumRange / 100.0;
unsigned long width;
char auto_crop_width[20];
ExceptionInfo exception;
image = rm_check_destroyed(self);
switch (argc)
{
case 2:
width = NUM2ULONG(argv[1]);
memset(auto_crop_width, 0, sizeof(auto_crop_width));
sprintf(auto_crop_width, "%ld", width);
SetImageArtifact(image, "deskew:auto-crop", auto_crop_width);
case 1:
threshold = rm_percentage(argv[0],1.0) * QuantumRange;
case 0:
break;
default:
rb_raise(rb_eArgError, "wrong number of arguments (%d for 1 or 2)", argc);
break;
}
GetExceptionInfo(&exception);
new_image = DeskewImage(image, threshold, &exception);
CHECK_EXCEPTION()
rm_ensure_result(new_image);
(void) DestroyExceptionInfo(&exception);
return rm_image_new(new_image);
#else
self = self; // defeat "unused parameter" message
argv = argv;
argc = argc;
rm_not_implemented();
return(VALUE)0;
#endif
}
|