Please note that blur of 1 should not affect the image if I'm understanding correctly from this page:
http://www.php.net/manual/en/imagick.resizeimage.php
(PECL imagick 2.0.0)
Imagick::resampleImage — Resample image to desired resolution
$x_resolution
, float $y_resolution
, int $filter
, float $blur
)Resample image to desired resolution.
x_resolution
y_resolution
filter
blur
Returns TRUE
on success.
Example #1 Imagick::resampleImage()
<?php
function resampleImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->resampleImage(200, 200, \Imagick::FILTER_LANCZOS, 1);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}
?>
Please note that blur of 1 should not affect the image if I'm understanding correctly from this page:
http://www.php.net/manual/en/imagick.resizeimage.php
Please not that I had extremely high CPU usage using this function on Ubuntu linux 15.10. Switching to the resizeImage function fixed the problem.
Lets say you want to reduce the resolution of uploaded images for the web.
The following will load a image at whatever resolution and resample it down to 72 dpi and save as a different file.
The dpi for setImageResolution() and resampleImage() should be whatever dpi your resampling too.
<?php
$image = new Imagick();
$image->readImage('image.jpg');
$image->setImageResolution(72,72);
$image->resampleImage(72,72,imagick::FILTER_UNDEFINED,0);
$image->writeImage('image72.jpg');
?>