请注意,我在 Ubuntu Linux 15.10 上使用此函数时 CPU 使用率极高。切换到 resizeImage 函数解决了此问题。
(PECL imagick 2, PECL imagick 3)
Imagick::resampleImage — 将图像重采样到所需的解析度
$x_resolution
,$y_resolution
,$filter
,$blur
将图像重采样到所需的解析度。
x_resolution
y_resolution
filter
blur
成功时返回 true
。
示例 #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();
}
?>
请注意,如果我从以下页面正确理解,模糊度为 1 应该不会影响图像
https://php.net/manual/en/imagick.resizeimage.php
假设您想降低上传到网络的图像的解析度。
以下操作将加载任何解析度的图像并将其重采样到 72 dpi,并另存为不同的文件。
setImageResolution() 和 resampleImage() 的 dpi 应为重采样的 dpi。
<?php
$image = new Imagick();
$image->readImage('image.jpg');
$image->setImageResolution(72,72);
$image->resampleImage(72,72,imagick::FILTER_UNDEFINED,0);
$image->writeImage('image72.jpg');
?>