SAF*_*FAD 14 php gd blur imagefilter
我想用GD库模糊图像,遗憾的是GD给出的GAUSSIAN_BLUR效果还不够,我想要的东西更模糊
<?php $im = imagecreatefrompng($_GET['image']);
if($im && imagefilter($im, IMG_FILTER_GAUSSIAN_BLUR))
{
header('Content-Type: image/png');
imagepng($im);
}
else
{
echo 'fail';
}
imagedestroy($im);
Run Code Online (Sandbox Code Playgroud)
我想要这样的东西或至少在它附近.

And*_*iga 20
在遇到同样的问题之后,我几次应用了相同的过滤器,并且每次都应用于前一次"imagefilter"调用的结果资源.我得到了你想要的"更模糊"的效果.
例如:
for ($x=1; $x<=15; $x++)
imagefilter($image, IMG_FILTER_GAUSSIAN_BLUR);
Run Code Online (Sandbox Code Playgroud)
JKi*_*rtz 13
你可以尝试卷积:
$gaussian = array(array(1.0, 2.0, 1.0), array(2.0, 4.0, 2.0), array(1.0, 2.0, 1.0));
imageconvolution($image, $gaussian, 16, 0);
Run Code Online (Sandbox Code Playgroud)
$gaussian 是一个矩阵,所以在数学上它是
[[1, 2, 1],
[2, 4, 2],
[1, 2, 1]]
Run Code Online (Sandbox Code Playgroud)
您可以在以下网址找到其他卷积滤镜:http://aishack.in/tutorials/image-convolution-examples/
imageconvolution( <image element>, <convolution matrix>, <divisor (sum of convolution matrix)>, <color offset>);
Run Code Online (Sandbox Code Playgroud)
所以从上面的代码1+2+1+2+4+2+1+2+1 = 16矩阵的总和.http://www.php.net/manual/en/function.imageconvolution.php#97921是获得除数之和的巧妙技巧.
有关此功能的更多信息,请查看http://php.net/manual/en/function.imageconvolution.php.
好时尚模糊是(1,2,1),(2,1,2),(1,2,1)
编辑: 如下所述,您可以在结果输出上多次运行任何过滤器,以增强效果.