(PECL imagick 2, PECL imagick 3)
Imagick::resizeImage — Scales an image
$columns,$rows,$filter,$blur,$bestfit = false,$legacy = falseScales an image to the desired dimensions with a filter.
Зауваження:
Поведінка параметра
bestfitзмінилася в Imagick 3.0.0. Раніше він не діяв на зображення розмірів 400x400 та 200x150. Починаючи з Imagick 3.0.0, такі зображення отримають розмір 400x300, оскільки це "найкраще підходить" для заданих розмірів. Якщо параметрbestfitвикористовується, необхідно вказати як висоту, так і ширину.
columnsWidth of the image
rowsHeight of the image
filterRefer to the list of filter constants.
blurThe blur factor where > 1 is blurry, < 1 is sharp.
bestfitOptional bool parameter. If set to true, the image is resized to fit within the given dimensions while preserving the aspect ratio.
legacyOptional bool parameter. If set to true, the calculations are done with the small rounding bug that existed in Imagick before 3.4.0. If set to false, the calculations should produce the same results as the ImageMagick command-line tools.
Повертає true в разі успіху.
| Версія | Опис |
|---|---|
| PECL imagick 2.1.0 | Added optional fit parameter. This method now supports proportional scaling. Pass zero as either parameter for proportional scaling. |
| PECL imagick 3.4.0 |
Added the legacy parameter.
|
Приклад #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();
}
?>