| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Бросить тень используя PNG с прозрачными областями |
| Автор: Majestio 10.6.2013, 15:45 |
| Нужен алгоритм применения эффекта "тень" (а-ля Фотошоп) над непрозрачными областями PNG-картинки. Может кто видел хоть какие нить-реализации? В идеале - на Qt. Не в идеале - на любом языке. Пример (светлосерый цвет - область прозрачности) Есть: ![]() Нужно: ![]() |
| Автор: Amp 10.6.2013, 15:52 |
| Перекрасить непрозрачные области в нужный цвет (черный), применить к изображению какой-нибудь фильтр для размытия (например Гауссовый, с заданным радиусом), сдвинуть на пару пикселей, наложить сверху оригинальное изображение. |
| Автор: Majestio 10.6.2013, 16:01 |
| Спасибо |
| Автор: bsa 10.6.2013, 17:54 |
| что-то как-то сложно. проще подготовить заранее png изображение тени (левый нижний угол, горизонталь, правый нижний угол, вертикаль, правый верхний угол), а затем накладывать его на подложку при рисовании объекта. |
| Автор: Majestio 10.6.2013, 18:51 | ||
не не не - еще трансформации (как минимум вращение) PNG предполагаются заранее, надо вычисляемую тень. |
| Автор: bsa 11.6.2013, 11:03 |
| Majestio, ну тогда берешь свое изображение, приводишь его к черной маске, затем накладываешь с 30% прозрачностью три раза под изображение сдвигая перед накладыванием на 1 пиксел вправо и вниз. |
| Автор: Majestio 11.6.2013, 12:38 | ||
Еще есть момент: нужно задавать "расстояние" тени и "радиус размытия". В сосоедних форумах уже дали наколочки - осталось реализовать. Но задача пока не сегодняшнего дня. Под конец проекта нужно будет рюшечки развешивать. Как реализую - обязательно поделюсь решением в надежде справедливой критики |