PHP изменение размера и размытие изображения

У меня вопрос. У меня уже есть этот код (я не лучший кодер, но, по крайней мере, он работает 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

Решение

IMG_FILTER_GAUSSIAN_BLUR Фильтр довольно медленный. Называть это 50 раз не поможет. Вы можете попробовать некоторую комбинацию фильтров.

Попробуй поставить

imagefilter($images_orig, IMG_FILTER_SMOOTH, -2);

перед петлей и уменьшить количество петель ($blurs) что-то вроде 3.

0

Другие решения

Других решений пока нет …