PHP调整大小并模糊图像

时间:2014-10-26 11:38:30

标签: php image resize blur

我有一个问题。我已经有了这个代码(我不是最好的编码器,但至少它可以工作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);

1 个答案:

答案 0 :(得分:0)

IMG_FILTER_GAUSSIAN_BLUR过滤器速度很慢。拨打50次电话无济于事。您可以尝试一些过滤器组合。

尝试添加

imagefilter($images_orig, IMG_FILTER_SMOOTH, -2);

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