Главная Unsharp Mask на PHP

Unsharp Mask на PHP

Раздел: Оффлайн, 21 июня 2008 2 комментария

Давно меня волновала одна проблема: на автобегиннере редакторы добавляют фотографии к статьям и новостям. Из добавленной картинки формируются две уменьшенные (preview и thumbnail). Так вот, после уменьшения сильно страдает резкость картинки. Надо это исправить.

Как работает UnsharpMask? Резкость увеличивается за счет изменения яркости отдельных пикселей.

На входе фильтра три параметра: Amount, Radius и Threshold. Amount показывает на сколько нужно увеличить яркость пикселя, Radius определяем размер границы, которая делается четче,
Threshold – “порог” применения фильтра.

Все довольно просто: Копируем исходное изображение, размываем изображение (применяем к нему blur). Накладываем одно на другое и считаем разницу.

Если разница яркостей исходного и размытого изображения больше, чем значение Threshold, увеличиваем на Amount процентов яркость этого пикселя. Radius определяет сколько соседних пикселей сравнивается.

Код можно взять отсюда: [ссылка]

Смотрите также:

Теги:

2 комментария

  1. mmort пишет:

    А скрипт не сильно грузит хостинг, на сервак не выгонят за такое ?

    1. Knave пишет:

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

      С другой стороны, он применяется к картинкам, которые уже уменьшены. В общем, я думаю, если использовать его в админке, то проблем не будет.

Оставить комментарий


© 2008–2010 Копилефт и все такое...