(PECL imagick 2, PECL imagick 3)
Imagick::resizeImage — Escala una imagen
$columns,$rows,$filter,$blur,$bestfit = false,$legacy = falseEscala una imagen a las dimensiones deseadas con un filtro.
Nota:
El comportamiento del parámetro
bestfitcambió con Imagick 3.0.0. Antes de esta versión, proporcionar las dimensiones 400x400 a una imagen de dimensiones 200x150 hacía que la parte izquierda permaneciera sin cambios. Con Imagick 3.0.0 y posteriores, la imagen se reduce al tamaño 400x300, siendo este el mejor resultado para esas dimensiones. Si el parámetrobestfites utilizado, la anchura y la altura deben ser proporcionadas.
columnsAncho de la imagen
rowsAlto de la imagen
filterConsulte la lista de constantes de filtro.
blurEl factor de borrosidad donde > 1 es borroso, < 1 es nítido.
bestfit
Si se establece en true y las dimensiones proporcionadas son menores que las
dimensiones de la imagen, la imagen se reducirá para ajustarse dentro del cuadro
delimitador. Si se establece en false o si la imagen ya es más pequeña que el
cuadro delimitador, la imagen no se escalará.
legacy
El parámetro legacy fue añadido en PECL imagick 3.4.0.
Se realizaron cambios en el comportamiento de bestfit
cuando el parámetro legacy es true.
Consulte el registro de cambios para más información.
Devuelve true en caso de éxito.
| Versión | Descripción |
|---|---|
| PECL imagick 3.4.0 | Se añadió el parámetro legacy. |
| PECL imagick 2.1.0 | Añadido el parámetro opcional de ajuste. Este método ahora soporta escalas proporcionales. Pase cero como parámetro para escalar proporcionalmente. |
Ejemplo #1 Imagick::resizeImage()
<?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();
}
?>