函數(shù)名:Imagick::resampleImage()
適用版本:PHP 5 >= 5.4.0, PECL imagick >= 2.3.0
用法:該函數(shù)用于重新采樣圖像,改變其分辨率和像素密度。
語法:public Imagick::resampleImage(float $x_resolution, float $y_resolution, int $filter, float $blur)
參數(shù):
- $x_resolution: 指定圖像的水平分辨率(每英寸像素?cái)?shù))。
- $y_resolution: 指定圖像的垂直分辨率(每英寸像素?cái)?shù))。
- $filter: 指定用于重新采樣的濾波器類型,可選值有:
- Imagick::FILTER_UNDEFINED (0): 未定義濾波器。
- Imagick::FILTER_POINT (1): 點(diǎn)濾波器。
- Imagick::FILTER_BOX (2): 盒狀濾波器。
- Imagick::FILTER_TRIANGLE (3): 三角形濾波器。
- Imagick::FILTER_HERMITE (4): Hermite濾波器。
- Imagick::FILTER_HANNING (5): Hanning濾波器。
- Imagick::FILTER_HAMMING (6): Hamming濾波器。
- Imagick::FILTER_BLACKMAN (7): Blackman濾波器。
- Imagick::FILTER_GAUSSIAN (8): Gaussian濾波器。
- Imagick::FILTER_QUADRATIC (9): Quadratic濾波器。
- Imagick::FILTER_CUBIC (10): Cubic濾波器。
- Imagick::FILTER_CATROM (11): Catrom濾波器。
- Imagick::FILTER_MITCHELL (12): Mitchell濾波器。
- Imagick::FILTER_LANCZOS (13): Lanczos濾波器。
- Imagick::FILTER_BESSEL (14): Bessel濾波器。
- Imagick::FILTER_SINC (15): Sinc濾波器。
- $blur: 指定濾波器的模糊量。
返回值:成功時(shí)返回 true,失敗時(shí)返回 false。
示例:
// 創(chuàng)建 Imagick 對象
$image = new Imagick('input.jpg');
// 設(shè)置分辨率為 300x300 像素/英寸,使用 Lanczos 濾波器,模糊量為 1.0
$resampled = $image->resampleImage(300, 300, Imagick::FILTER_LANCZOS, 1.0);
if ($resampled) {
// 保存重新采樣后的圖像
$resampled->writeImage('output.jpg');
echo "圖像重新采樣成功!";
} else {
echo "圖像重新采樣失?。?;
}
// 銷毀對象
$image->destroy();
$resampled->destroy();
注意事項(xiàng):
- 濾波器類型和模糊量的選擇會影響圖像的質(zhì)量和處理速度,需要根據(jù)實(shí)際需求進(jìn)行調(diào)整。
- 重新采樣圖像可能會導(dǎo)致圖像質(zhì)量的損失,特別是當(dāng)目標(biāo)分辨率較低于原始圖像分辨率時(shí)。建議在實(shí)際應(yīng)用中進(jìn)行充分測試和調(diào)優(yōu)。
- 使用前需要確保已經(jīng)安裝了 imagick 擴(kuò)展,并且 PHP 版本符合要求。