Как добиться эффекта размытия в PHP?

Я искал PHP-код для применения размытия Gaussian к изображениям.

Я сделал так:

<?php $image = imagecreatefromjpeg('new.jpg'); imagefilter($image, IMG_FILTER_GAUSSIAN_BLUR); imagejpeg($image, 'blur.jpeg'); imagedestroy($image); ?> 

Однако эффект очень слабый, и если я повторяю эффект размытия, для обработки требуется очень много времени, и конечный результат все еще не так хорош.

Я также использовал Timthumb, мне всегда нравилась его простота, но она портит изображение по умолчанию, и его эффект размытия очень слабый.

Вы можете использовать ImageMagic

Оригинальное изображение

введите описание изображения здесь

Запуск через exec

 convert a.png -blur 0x3 a_blur.png 

Вывод

ИЛИ Run

 convert a.png -blur 0x8 a_blur.png 

введите описание изображения здесь

Это возможно также без ImageMagic lib;

 header('Content-Type: image/png'); $blurs = 10; $image = imagecreatefrompng('blur.png'); for ($i = 0; $i < $blurs; $i++) { imagefilter($image, IMG_FILTER_GAUSSIAN_BLUR); } imagepng($image, 'blur10.png'); imagedestroy($image); 

После применения 10 размыток;

введите описание изображения здесь

Оптимизация изображения – это очень тяжелый процесс, так что лично, если у меня есть такая задача в PHP, то я использую эту библиотеку изображений PHP. Вызывается PhpThumb, она может создавать размытые изображения без какого-либо кода, который вам нужен, просто вызвать его скрипт через url и предоставить параметры в соответствии с его документами проверьте его демо .