Imagick::adaptiveResizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::adaptiveResizeImageRedimensiona imagem de forma adaptativa com triangulação dependente de dados

Descrição

public Imagick::adaptiveResizeImage(
    int $columns,
    int $rows,
    bool $bestfit = false,
    bool $legacy = false
): bool

Redimensiona a imagem de forma adaptativa com triangulação dependente de dados. Evita o desfoque em mudanças súbitas de cores. Mais útil quando usado para reduzir imagens ligeiramente para um "tamanho da web"; pode não parecer bom quando uma imagem em tamanho real é redimensionada de forma adaptativa para uma miniatura. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

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

O número de colunas na imagem dimensionada.

rows

O número de linhas na imagem dimensionada.

bestfit

Define se a imagem deve ser ajustada dentro de uma caixa delimitadora.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Registro de Alterações

Versão Descrição
PECL imagick 2.1.0 Adicionado o parâmetro opcional bestfit.
PECL imagick 2.1.0 Este método agora suporta redimensionamento proporcional. Passe zero como um dos parâmetros para redimensionamento proporcional.

Exemplos

Example #1 Usando Imagick::adaptiveResizeImage()

Redimensiona uma imagem para um tamanho padrão para a web. Este método funciona melhor ao redimensionar para um tamanho ligeiramente menor que o tamanho da imagem anterior.

<?php
header('Content-type: image/jpeg');

$image = new Imagick('image.jpg');
$image->adaptiveResizeImage(1024,768);

echo $image;
?>

Veja Também