如何在PHP中实现模糊效果?

时间:2013-01-20 19:18:18

标签: php gd

我一直在寻找PHP代码将高斯模糊应用于图像。

我所做的就是这样:

<?php
$image = imagecreatefromjpeg('new.jpg'); 
imagefilter($image, IMG_FILTER_GAUSSIAN_BLUR);
imagejpeg($image, 'blur.jpeg');
imagedestroy($image);
?>

然而效果非常弱,如果我重复模糊效果,处理需要很长时间,最终结果仍然不太好。

我也使用过Timthumb,我总是喜欢它的简洁性,但它默认裁剪图像,其模糊效果非常弱。

3 个答案:

答案 0 :(得分:7)

您可以使用ImageMagic

原始图片

enter image description here

通过exec

运行
convert a.png -blur 0x3 a_blur.png

Output

或运行

convert a.png -blur 0x8 a_blur.png

enter image description here

答案 1 :(得分:7)

也可以没有ImageMagic lib;

header('Content-Type: image/png');

$blurs = 10;
$image = imagecreatefrompng('blur.png');
for ($i = 0; $i < $blurs; $i++) {
    imagefilter($image, IMG_FILTER_GAUSSIAN_BLUR);
}
imagepng($image, 'blur10.png');
imagedestroy($image);

应用10个模糊后;

enter image description here

答案 2 :(得分:0)

图像优化是一个非常繁重的过程,所以个人如果我在PHP中有这样的任务,那么我使用这个被称为PhpThumb的PHP图像库它可以创建模糊图像而无需任何代码,你只需要通过url调用它的脚本并根据其文档提供参数检查demo