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

ctrl+enter

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

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