(PECL imagick 2, PECL imagick 3)
Imagick::resizeImage — Dimensiona uma imagem
$columns,$rows,$filter,$blur,$bestfit = false,$legacy = falseDimensiona uma imagem para as dimensões desejadas com um filtro.
Nota:
O comportamento do parâmetro
bestfitmudou 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âmetrobestfitfor usado, tanto a largura quanto a altura devem ser informadas.
columnsLargura da imagem
rowsAltura da imagem
filterConsulte a lista de constantes de filtros.
blurO fator de desfoque onde > 1 é desfocado, < 1 é nítido.
bestfitParâmetro bool opcional. Se definido como 'true', a imagem é redimensionada para caber dentro das dimensões fornecidas preservando a proporção.
legacyParâmetro bool opcional. Se definido como 'true', os cálculos são feitos com a pequena falha de arredondamento que existia no Imagick antes da versão 3.4.0. Se definido como 'false', os cálculos devem produzir os mesmos resultados que as ferramentas de linha de comando do ImageMagick.
Retorna true em caso de sucesso.
| 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. |
| PECL imagick 3.4.0 |
Adicionado o parâmetro legacy.
|
Exemplo #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();
}
?>