PHP调整图像大小并使其模糊
我有个问题。我已经有了这段用于图像模糊和调整大小的代码(我不是最好的编码器,但至少它是xD)。时间太长了,所以我想问一下是否有办法让它更快: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(
$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高斯模糊
。