(PECL imagick 2, PECL imagick 3)
Imagick::resizeImage — Redimensionne une image
$columns,$rows,$filter,$blur,$bestfit = false,$legacy = falseRedimensionne une image aux dimensions désirées, avec un filtre.
Note:
Le comportement du paramètre
bestfita changé avec Imagick 3.0.0. Avant cette version, fournir les dimensions 400x400 à une image de dimensions 200x150 faisait que la partie gauche était inchangée. Avec Imagick 3.0.0 et suivants, l'image est réduite à la taille 400x300, sachant que c'est le meilleur résultat pour ces dimensions. Si le paramètrebestfitest utilisé, la largeur et la hauteur doivent être fournies.
columnsLa largeur de l'image cible.
rowsLa hauteur de l'image cible.
filterUne constante de filtre.
blurLe facteur de flou, où > 1 est flou, et < 1 est net.
bestfit
Paramètre optionnel de type bool.
Si défini à true, l'image est redimensionnée pour tenir dans les
dimensions données tout en conservant les proportions.
legacy
Paramètre optionnel de type bool.
Si défini à true, les calculs sont effectués avec le léger bogue
d'arrondi qui existait dans Imagick avant la version 3.4.0. Si défini
à false, les calculs produisent les mêmes résultats que les outils
en ligne de commande d'ImageMagick.
Retourne true en cas de succès.
| Version | Description |
|---|---|
| PECL imagick 2.1.0 | Ajout d'un paramètre optionnel de fit. Cette méthode supporte maintenant la mise à l'échelle proportionnelle. Passez zéro comme valeur de paramètre pour une mise à l'échelle proportionnelle. |
| PECL imagick 3.4.0 |
Ajout du paramètre legacy.
|
Exemple #1 Exemple avec Imagick::resizeImage()
<?php
function resizeImage($imagePath, $width, $height, $filterType, $blur, $bestFit, $cropZoom) {
// Le facteur de flou où > 1 correspond à totalement flou, et < 1 correspond à fort.
$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();
}
?>