• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • Imagick::deskewImage()

    (No version information available, might only be in Git)

    Removes skew from the image

    说明

    publicImagick::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()

    <?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();
    }
    ?>