©
本文档使用
php.cn手册 发布
(No version information available, might only be in Git)
Imagick::deskewImage — Removes skew from the image
$threshold
)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()
<?php
function 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 ();
}
?>