php8.5
Home/ Manual/ imagick / imagick/ Imagick::resizeImage

Imagick::resizeImage

PHP function Edit on GitHub ✎

(PECL imagick 2, PECL imagick 3)

Scales an image

Description

Imagick::resizeImage(int $columns, int $rows, int $filter, float $blur, bool $bestfit = false, bool $legacy = false): bool

Scales an image to the desired dimensions with a filter.

Note

Parameters

columns

Width of the image

rows

Height of the image

filter

Refer to the list of filter constants.

blur

The blur factor where > 1 is blurry, < 1 is sharp.

bestfit

Optional bool parameter. If set to true, the image is resized to fit within the given dimensions while preserving the aspect ratio.

legacy

Optional bool parameter. If set to true, the calculations are done with the small rounding bug that existed in Imagick before 3.4.0. If set to false, the calculations should produce the same results as the ImageMagick command-line tools.

Return Values

Success

Changelog

VersionDescription
PECL imagick 2.1.0Added optional fit parameter. This method now supports proportional scaling. Pass zero as either parameter for proportional scaling.
PECL imagick 3.4.0Added the legacy parameter.

Examples

Imagick::resizeImage()

php
<?php
function resizeImage($imagePath, $width, $height, $filterType, $blur, $bestFit, $cropZoom) {
    //The blur factor where > 1 is blurry, < 1 is sharp.
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->resizeImage($width, $height, $filterType, $blur, $bestFit);

    $cropWidth = $imagick->getImageWidth();
    $cropHeight = $imagick->getImageHeight();

    if ($cropZoom) {
        $newWidth = $cropWidth / 2;
        $newHeight = $cropHeight / 2;

        $imagick->cropimage(
            $newWidth,
            $newHeight,
            ($cropWidth - $newWidth) / 2,
            ($cropHeight - $newHeight) / 2
        );

        $imagick->scaleimage(
            $imagick->getImageWidth() * 4,
            $imagick->getImageHeight() * 4
        );
    }


    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>

Source: reference/imagick/imagick/resizeimage.xml · from the official PHP manual (php/doc-en)