Php/docs/imagick.deskewimage

提供:Dev Guides
< Php
移動先:案内検索

Imagick::deskewImage

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

Imagick::deskewImage傾きを除去する


説明

public Imagick::deskewImage ( float $threshold ) : bool

このメソッドを使うと、スキャナでの読み込み時にうまく紙を置かなかった場合などの画像の傾きを除去することができます。 このメソッドは、ImageMagick バージョン 6.4.5 以降で Imagick をコンパイルした場合に使用可能です。


パラメータ

threshold
傾き除去の閾値。


返り値

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