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