= 2.3.0, PECL imagick 3 >= 3.3.0)Imagick::deskewImage — Removes skew from the image說(shuō)明public Imagick::deskewImage(">

Imagick::deskewImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3 >= 3.3.0)

Imagick::deskewImageRemoves skew from the image

說(shuō)明

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以上版本編譯時(shí)可用。

參數(shù)

threshold

Deskew threshold

返回值

范例

示例 #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(), $trim0);
    
$imagick->cropImage($imagick->getImageWidth() - $trim$imagick->getImageHeight(), $trim0);
    
$deskewImagick->resizeimage($deskewImagick->getImageWidth() / 2$deskewImagick->getImageHeight() / 2, \Imagick::FILTER_LANCZOS1);
    
$imagick->resizeimage($imagick->getImageWidth() / 2$imagick->getImageHeight() / 2, \Imagick::FILTER_LANCZOS1);
    
$newCanvas = new \Imagick();
    
$newCanvas->newimage($imagick->getImageWidth() + $deskewImagick->getImageWidth() + 20$imagick->getImageHeight(), 'red''jpg');
    
$newCanvas->compositeimage($imagick, \Imagick::COMPOSITE_COPY50);
    
$newCanvas->compositeimage($deskewImagick, \Imagick::COMPOSITE_COPY$imagick->getImageWidth() + 100);

    
header("Content-Type: image/jpg");
    echo 
$newCanvas->getImageBlob();
}

?>