Php/docs/imagick.deskewimage
Imagick::deskewImage
(PECL imagick 2 >= 2.3.0, PECL imagick 3 >= 3.3.0)
Imagick::deskewImage — Removes skew from the image
说明
public Imagick::deskewImage
( float $threshold
) : bool
This method can be used to remove skew from for example scanned images where the paper was not properly placed on the scanning surface. 此方法在Imagick基于ImageMagick 6.4.5以上版本编译时可用。
参数
threshold
- Deskew threshold
返回值
范例
Example #1 Imagick::deskewImage()
<?phpfunction deskewImage($threshold) { $imagick = new \Imagick(realpath("images/NYTimes-Page1-11-11-1918.jpg")); $deskewImagick = clone $imagick; //This is the only thing required for deskewing. $deskewImagick->deskewImage($threshold); //The rest of this example is to make the result obvious - because //otherwise the result is not obvious. $trim = 9; $deskewImagick->cropImage($deskewImagick->getImageWidth() - $trim, $deskewImagick->getImageHeight(), $trim, 0); $imagick->cropImage($imagick->getImageWidth() - $trim, $imagick->getImageHeight(), $trim, 0); $deskewImagick->resizeimage($deskewImagick->getImageWidth() / 2, $deskewImagick->getImageHeight() / 2, \Imagick::FILTER_LANCZOS, 1); $imagick->resizeimage($imagick->getImageWidth() / 2, $imagick->getImageHeight() / 2, \Imagick::FILTER_LANCZOS, 1); $newCanvas = new \Imagick(); $newCanvas->newimage($imagick->getImageWidth() + $deskewImagick->getImageWidth() + 20, $imagick->getImageHeight(), 'red', 'jpg'); $newCanvas->compositeimage($imagick, \Imagick::COMPOSITE_COPY, 5, 0); $newCanvas->compositeimage($deskewImagick, \Imagick::COMPOSITE_COPY, $imagick->getImageWidth() + 10, 0); header("Content-Type: image/jpg"); echo $newCanvas->getImageBlob();}?>