Imagick::resampleImage()
(PECL imagick 2.0.0)
Resample image to desired resolution
说明
Imagick::resampleImage(float $x_resolution,float $y_resolution,int $filter,float $blur): bool
Resample image to desired resolution.
参数
- $x_resolution
- $y_resolution
- $filter
- $blur
返回值
成功时返回TRUE
。
范例
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'); ?>