Размытие изображения на php c помощью imagick

Для размытия изображение с помощью средств php можно воспользоваться библиотекой Imagick. Для этого на изображение нужно наложить фильтр. В Imagick есть две подходящих функции для этого:

  • blurImage;
  • adaptiveblurimage.

Я проводил испытания, по которым blurImage показала производительность в 20-50 раз выше чем adaptiveblurimage на картинках размером 1000px на 1000px. На картинках до 200px разницы в проиводительности не почувствовал. Также не заметил особых изменений в качестве картинки при использовании обех функций. Поэтому остановился на blurImage.  Код, размывающий картинку, и сохраняющий её по новому пути:

$magic = new Imagick();
$magic->readimage('image.png');
$magic->blurImage(0, 9);
$magic->writeimage('path_to_save.png');

Какие параметры передавать в  blurImage для размытия изображения?

bool Imagick::blurImage ( float $radius , float $sigma [, int $channel ] )

Список параметров blurImage:

  • $radius - радиус размытия;
  • $sigma - cтандартное отклонение;
  • $channel - константа Channeltype. Если не указано, то будут размыты все каналы. Необязательный третий параметр служит для размытия определенного канала.

Imagick советует использовать певый параметр ($radius), как ноль:

The ideal solution is to simply set radius to 0. In that case the operator will try to automatically determine the best radius for the sigma given.  

Возвращаемое значение

Возвращает TRUE в случае успеха. Выбрасывает исключение ImagickException в случае ошибки.

Для испытаний функции blurImage я выбрал одну из самых красивых аватарок на сайте. Надеюсь, Роза не обидется:

Следующий пример, взятый из официальной доки, сразу выведет размытую картинку в браузер:

<?php

header('Content-type: image/jpeg');

$image = new Imagick('test.jpg');

$image->blurImage(5,3);
echo $image;

?>

 

 
Поисковые запросы, по которым приходили пользователи
 
 
 

icon Комментарии 6

 suzanna 2 года назад
какого цвета на ней трусы?
 roza 2 года назад
Не очень приятно смотреть на себя после такого размытия.
 roza 2 года назад
Suzanna, то ли белого то ли никакого :) я фото-модель
 suzanna 2 года назад
roza, как думаешь imagick может увеличить мне грудь?
 roza 2 года назад
Suzanna, думаю что нет! Но ты можешь размыть свою фотографию и тогда ты будешь более красивая!
blurImage(0, 20);
 suzanna 2 года назад
прискорбно
Ваш комментарий к статье.. (для авторизованных)

ctrl+enter

icon Вход в систему

зарегистрироваться
НОВЫЕ ПОЛЬЗОВАТЕЛИ