Imagick::resizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::resizeImageDimensiona uma imagem

Descrição

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

Dimensiona uma imagem para as dimensões desejadas com um filtro.

Note: O comportamento do parâmetro bestfit mudou na Imagick 3.0.0. Antes desta versão, dadas as dimensões 400x400, uma imagem de dimensões 200x150 permaneceria intocada. Na Imagick 3.0.0 e superiores, a imagem será escalada para 400x300, pois este é o "melhor ajuste" para as dimensões fornecidas. Se o parâmetro bestfit for usado, tanto a largura quanto a altura devem ser informadas.

Parâmetros

columns

Largura da imagem

rows

Altura da imagem

filter

Consulte a lista de constantes de filtros.

blur

O fator de desfoque onde > 1 é desfocado, < 1 é nítido.

bestfit

Parâmetro de ajuste opcional.

Valor Retornado

Retorna true em caso de sucesso.

Registro de Alterações

Versão Descrição
PECL imagick 2.1.0 Adicionado parâmetro de ajuste opcional. Este método agora oferece suporte ao dimensionamento proporcional. Passe zero como qualquer parâmetro para dimensionamento proporcional.

Exemplos

Example #1 Exemplo de Imagick::resizeImage()

<?php
function resizeImage($imagePath, $width, $height, $filterType, $blur, $bestFit, $cropZoom) {
    // O fator de desfoque onde > 1 é desfocado, < 1 é nítido.
    $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();
}

?>