我有一个问题。我已经有了这个代码(我不是最好的编码器,但至少它可以工作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);
答案 0 :(得分:0)
IMG_FILTER_GAUSSIAN_BLUR
过滤器速度很慢。拨打50次电话无济于事。您可以尝试一些过滤器组合。
尝试添加
imagefilter($images_orig, IMG_FILTER_SMOOTH, -2);
在循环前面,将循环计数($blurs
)减少到类似3。