PHP/GD 高斯模糊效果
我需要使用 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));
}
}
这基本上用 $pixel 像素的正方形替换了选定的区域。 我想实现某种模糊(最好是高斯)效果,我知道我可以使用 ImageFilter() 函数:
ImageFilter($image, IMG_FILTER_GAUSSIAN_BLUR);
但它会模糊整个画布,我的问题是我只想模糊特定区域。
I need to obfuscate a certain area of an image using PHP and GD, currently I'm using the following code:
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));
}
}
This basically replaces the selected area with squares of $pixel pixels. I want to accomplish some kind of blur (gaussian preferably) effect, I know I can use the ImageFilter() function:
ImageFilter($image, IMG_FILTER_GAUSSIAN_BLUR);
But it blurs the entire canvas, my problem is that I just want to blur a specific area.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以将图像的特定部分复制到新图像中,在新图像上应用模糊,然后将结果复制回来。
有点像这样:
You can copy a specific part of the image into a new image, apply the blur on the new image and copy the result back.
Sort of like this:
我没有检查 imagefilter 的文档,我不知道这是否不可能,或者是否有等效的方法将其应用于图像的(一部分)。 但假设没有,为什么不呢:
I did not check the documentation for imagefilter and I don't know if this is impossible or if there is an equivalent to applying this to (a part) of an image. But assuming there isn't, why not: