Программно нарисовать тень - PullRequest
1 голос
/ 21 июля 2011

Это, вероятно, относится ко всем языкам программирования.

Я использую Adobe Flash AS3, и по какой-то причине, из-за чего я не могу найти этот пост, я не могу использовать встроенные фильтры drophadow.

У меня, однако, есть растровые данные с цветовыми и альфа-значениями.

Так что должен быть способ нарисовать мой собственный фильтр дропшоу .... правильно?Любые хорошие алгоритмы, которые я должен пойти и проверить?

Не обращая особого внимания на реализацию AS3, любой другой пример, вероятно, позволит мне преобразовать код.

1 Ответ

3 голосов
/ 21 июля 2011

Обычно отбрасывание теней выполняется следующим образом:

  • копирование альфа-канала растрового изображения
  • размытие скопированного альфа-канала (гауссово размытие должно быть в порядке)
  • переместите скопированный альфа-канал вниз и вправо
  • используйте скопированный альфа-канал, чтобы затемнить фон (то есть умножьте значения RGB фона на обратное значение из альфа-канала; это то же самое, что объединитьальфа-канал с полностью чёрным растровым изображением и альфа-смешиванием над фоном)
  • отрисовка исходного растрового изображения (также с использованием альфа-смешения)
...