溫馨提示×

PHP圖形處理如何進行模糊

PHP
小樊
81
2024-10-30 15:51:25
欄目: 編程語言

在 PHP 中,可以使用 GD 庫或 ImageMagick 庫進行圖形處理,包括模糊操作。這里我將向您展示如何使用 GD 庫實現(xiàn)模糊效果。

首先,確保您的 PHP 安裝包含了 GD 庫。然后,您可以使用以下代碼來實現(xiàn)模糊效果:

<?php
// 加載圖像
$image = imagecreatefromjpeg('input.jpg');
$width = imagesx($image);
$height = imagesy($image);

// 創(chuàng)建一個正方形的畫布,大小與原始圖像相同
$canvas = imagecreatetruecolor($width, $height);

// 設(shè)置背景顏色
$background = imagecolorallocate($canvas, 255, 255, 255);
imagefill($canvas, 0, 0, $background);

// 模糊半徑
$blur_radius = 5;

// 應(yīng)用高斯模糊
for ($x = 0; $x < $width; $x++) {
    for ($y = 0; $y < $height; $y++) {
        $color = imagecolorat($image, $x, $y);
        $sum = 0;
        $count = 0;

        // 計算高斯模糊的顏色值
        for ($i = -$blur_radius; $i <= $blur_radius; $i++) {
            for ($j = -$blur_radius; $j <= $blur_radius; $j++) {
                $xi = $x + $i;
                $yj = $y + $j;

                // 確保坐標在圖像范圍內(nèi)
                if ($xi >= 0 && $xi < $width && $yj >= 0 && $yj < $height) {
                    $color_value = imagecolorat($image, $xi, $yj);
                    $sum += ($color_value - $color) * ($i * $i + $j * $j);
                    $count++;
                }
            }
        }

        // 計算模糊后的顏色值
        $color_value = round($sum / $count);
        imagesetpixel($canvas, $x, $y, $color_value);
    }
}

// 保存模糊后的圖像
imagejpeg($canvas, 'output.jpg', 80);

// 銷毀圖像資源
imagedestroy($image);
imagedestroy($canvas);
?>

這段代碼首先加載名為 “input.jpg” 的圖像,然后創(chuàng)建一個與原始圖像大小相同的畫布。接下來,它使用高斯模糊算法對圖像進行處理,并將結(jié)果保存為 “output.jpg”。

您可以根據(jù)需要調(diào)整 $blur_radius 變量的值以控制模糊程度。較大的值將導(dǎo)致更強的模糊效果。

0