Хорошее размытие изображения в GD

222
24 июня 2017, 13:08

На сайте имеется скрипт генерации миниатюр. Поскольку он изначально на GD, я добавил несколько строк, чтобы имитировать тень:

$background = imagecolorallocate($this->image, 239, 239, 239);
$shadow = imagecolorallocate($this->image, 170, 170, 170);
//рисуем фон
imagefilledrectangle($this->image, 0, 0, $width, $height, $background);
//рисуем тень
imagefilledrectangle($this->image, $xpos-0, $ypos, $width-$xpos+0, $height-$ypos+0, $shadow);
//размываем тень
imagefilter($this->image, IMG_FILTER_GAUSSIAN_BLUR);    
//накладываем поверх изображение
imagecopyresampled($this->image, $image_old, $xpos, $ypos, 0, 0, $new_width, $new_height, $this->width, $this->height);

Получается что-то вроде этого (если не накладывать изображение поверх):

Проблема в том, что IMG_FILTER_GAUSSIAN_BLUR не настраивается. Т.е силу размытия (она довольно небольшая) изменить нельзя. Мне нужно размытие увеличить на много больше (хотябы 50-100 px):

Я пробовал запустить фильтр несколько раз (решение из этого ответа), но все равно тень недостаточно размыта.

Какое решение можно предложить? Тень из наложенных друг на друга прямоугольников с отступом не предлагать, она слишком ненатурально выглядит из-за острых углов:

READ ALSO
Счётчик посещений страницы

Счётчик посещений страницы

Есть ли какой-то адекватный модуль для подсчёта уникальных посетителей страниц сайта? Искал по гитхабу и интернету в целом, ничего достойного...

198
Message: Undefined offset: 13

Message: Undefined offset: 13

Не понимаю в чем может быть проблема? Помогите пожалуйста Выскакивает такая ошибка

212
Update таблицы Laravel

Update таблицы Laravel

Хочу обновить поле в бд, записав туда сумму двух других полей

262
Почему не собирается проект из .c и .cpp файлов? (“undefined reference to …”)

Почему не собирается проект из .c и .cpp файлов? (“undefined reference to …”)

Есть файл dbengc (своя простенькая обертка к sqlite3):

372