This method can be used to remove skew from for example scanned images where the paper was not properly placed on the scanning surface. Available since 6.4.5
Touch/mouse over to see original View modified in new window.
Threshold
This method can be used to remove skew from for example scanned images where the paper was not properly placed on the scanning surface. Available since 6.4.5
Parameters
thresholdfloatDeskew threshold
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 $deskewImagick->getImageBlob();
}