PHP Conference Japan 2024

Imagick::deskewImage

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

Imagick::deskewImage移除影像的傾斜

描述

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

這個方法可以用來移除掃描影像的傾斜,例如紙張沒有正確放置在掃描表面上的情況。如果 Imagick 是針對 ImageMagick 6.4.5 或更新版本編譯的,則可以使用此方法。

參數

threshold

移除傾斜的臨界值

回傳值

範例

範例 #1 Imagick::deskewImage()

<?php
function deskewImage($threshold) {
$imagick = new \Imagick(realpath("images/NYTimes-Page1-11-11-1918.jpg"));
$deskewImagick = clone $imagick;

// 這是移除傾斜唯一需要做的。
$deskewImagick->deskewImage($threshold);

// 這個範例的其餘部分是為了讓結果更明顯 - 因為
// 否則結果不明顯。
$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();
}

?>

新增筆記

使用者貢獻筆記

此頁面沒有使用者貢獻筆記。
To Top