PHP调整图像大小并使其模糊

PHP调整图像大小并使其模糊,php,image,resize,blur,Php,Image,Resize,Blur,我有个问题。我已经有了这段用于图像模糊和调整大小的代码(我不是最好的编码器,但至少它是xD)。时间太长了,所以我想问一下是否有办法让它更快: $file = $data['image']; $blurs = 50; $extension = pathinfo($file, PATHINFO_EXTENSION); if ($extension == 'jpg' || $extension == 'jpeg') { $width=300; $size=GetimageSize(

我有个问题。我已经有了这段用于图像模糊和调整大小的代码(我不是最好的编码器,但至少它是xD)。时间太长了,所以我想问一下是否有办法让它更快:

$file = $data['image'];
$blurs = 50;

$extension = pathinfo($file, PATHINFO_EXTENSION);

if ($extension == 'jpg' || $extension == 'jpeg')
{
    $width=300;
    $size=GetimageSize($file);
    $height=round($width*$size[1]/$size[0]);
    $images_orig = ImageCreateFromJPEG($file);
    for ($i = 0; $i < $blurs; $i++) {
        imagefilter($images_orig, IMG_FILTER_GAUSSIAN_BLUR);
    }
    $photoX = ImagesX($images_orig);
    $photoY = ImagesY($images_orig);
    $images_fin = ImageCreateTrueColor($width, $height);
    ImageCopyResampled($images_fin, $images_orig, 0, 0, 0, 0, $width+1, $height+1, $photoX, $photoY);

    imagejpeg($images_fin, null, 100);
}

else if ($extension == 'png')
{

}

else
{
    return 'error';
}

imagedestroy($images_fin);
$file=$data['image'];
$blurs=50;
$extension=pathinfo($file,pathinfo\u扩展名);
如果($extension=='jpg'| |$extension=='jpeg')
{
$width=300;
$size=GetimageSize($file);
$height=圆形($width*$size[1]/$size[0]);
$images\u orig=ImageCreateFromJPEG($file);
对于($i=0;$i<$blurs;$i++){
图像过滤器($images\u orig,IMG\u FILTER\u GAUSSIAN\u BLUR);
}
$photoX=ImagesX($images\u orig);
$photoY=ImagesY($images\u orig);
$images\u fin=ImageCreateTrueColor($width,$height);
ImageCopyResampled($images\u fin,$images\u orig,0,0,0,$width+1,$height+1,$photoX,$photoY);
图像JPEG($images\u fin,null,100);
}
else if($extension=='png')
{
}
其他的
{
返回“错误”;
}
图像销毁($images\u fin);

IMG\u滤光片\u高斯模糊滤光片相当慢。打50次电话也无济于事。你可以尝试一些过滤器的组合

试着放一个

imagefilter($images_orig, IMG_FILTER_SMOOTH, -2);

在循环前面,将循环计数(
$blurs
)减少到3左右。

您没有访问imagemagick?@JelleKeizer的权限,我需要它是自动的,我真的没有时间自己编辑每个图像。如果安装了,你可以使用php中的ImageMagick来自动化它。问题是,图像非常大,如果我只使用很少的模糊,在调整图像大小后效果不可见。也许有一种方法可以先调整图像的大小,然后再将其模糊掉?你是否监督过缩放部分。首先缩小它的比例,然后模糊它,这是很有意义的。但是,调用
IMG\u FILTER\u GAUSSIAN\u BLUR
FILTER超过10次仍然会很慢。您将获得类似的效果,就像您首先使用
IMG\u过滤器\u平滑
过滤器,然后使用
IMG\u过滤器\u高斯模糊