PHP/GD高斯模糊效应

Ali*_*xel 10 php gd image-processing

我需要使用PHP和GD混淆图像的某个区域,目前我正在使用以下代码:

for ($x = $_GET['x1']; $x < $_GET['x2']; $x += $pixel)
{
    for ($y = $_GET['y1']; $y < $_GET['y2']; $y += $pixel)
    {
        ImageFilledRectangle($image, $x, $y, $x + $pixel - 1, $y + $pixel - 1, ImageColorAt($image, $x, $y));
    }
}
Run Code Online (Sandbox Code Playgroud)

这基本上用$ pixel像素的正方形替换所选区域.我想完成某种模糊(高斯优选)效果,我知道我可以使用ImageFilter()函数:

ImageFilter($image, IMG_FILTER_GAUSSIAN_BLUR);
Run Code Online (Sandbox Code Playgroud)

但它模糊了整个画布,我的问题是我只是想模糊一个特定的区域.

Sch*_*els 12

您可以将图像的特定部分复制到新图像中,在新图像上应用模糊并将结果复制回来.

有点像:

$image2 = imagecreate($width, $height);
imagecopy  ( $image2  , $image  , 0  , 0  , $x  , $y  , $width  , $height);
imagefilter($image, IMG_FILTER_GAUSSIAN_BLUR);
imagecopy ($image, $image2, $x, $y, 0, 0, $width, $height);
Run Code Online (Sandbox Code Playgroud)