Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Бросить тень используя PNG с прозрачными областями 
:(
    Опции темы
Majestio
Дата 10.6.2013, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 19.12.2010

Репутация: нет
Всего: нет



Нужен алгоритм применения эффекта "тень" (а-ля Фотошоп) над непрозрачными областями PNG-картинки. Может кто видел хоть какие нить-реализации? В идеале - на Qt. Не в идеале - на любом языке.

Пример (светлосерый цвет - область прозрачности)

Есть:

user posted image

Нужно:

user posted image
PM MAIL WWW   Вверх
Amp
Дата 10.6.2013, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: 7
Всего: 17



Перекрасить непрозрачные области в нужный цвет (черный), применить к изображению какой-нибудь фильтр для размытия (например Гауссовый, с заданным радиусом), сдвинуть на пару пикселей, наложить сверху оригинальное изображение.

Это сообщение отредактировал(а) Amp - 10.6.2013, 15:52
PM MAIL   Вверх
Majestio
Дата 10.6.2013, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 19.12.2010

Репутация: нет
Всего: нет



Спасибо smile  Возьмку на заметочку! Даж кусочек для старта нашел.
PM MAIL WWW   Вверх
bsa
Дата 10.6.2013, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



что-то как-то сложно. проще подготовить заранее png изображение тени (левый нижний угол, горизонталь, правый нижний угол, вертикаль, правый верхний угол), а затем накладывать его на подложку при рисовании объекта. 
PM   Вверх
Majestio
Дата 10.6.2013, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 19.12.2010

Репутация: нет
Всего: нет



Цитата(bsa @ 10.6.2013,  17:54)
что-то как-то сложно. проще подготовить заранее png изображение тени (левый нижний угол, горизонталь, правый нижний угол, вертикаль, правый верхний угол), а затем накладывать его на подложку при рисовании объекта.

не не не - еще трансформации (как минимум вращение) PNG предполагаются заранее, надо вычисляемую тень.
PM MAIL WWW   Вверх
bsa
Дата 11.6.2013, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



Majestio, ну тогда берешь свое изображение, приводишь его к черной маске, затем накладываешь с 30% прозрачностью три раза под изображение сдвигая перед накладыванием на 1 пиксел вправо и вниз.
PM   Вверх
Majestio
Дата 11.6.2013, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 19.12.2010

Репутация: нет
Всего: нет



Цитата(bsa @ 11.6.2013,  11:03)
Majestio, ну тогда берешь свое изображение, приводишь его к черной маске, затем накладываешь с 30% прозрачностью три раза под изображение сдвигая перед накладыванием на 1 пиксел вправо и вниз.

Еще есть момент: нужно задавать "расстояние" тени и "радиус размытия". В сосоедних форумах уже дали наколочки - осталось реализовать. Но задача пока не сегодняшнего дня. Под конец проекта нужно будет рюшечки развешивать. Как реализую - обязательно поделюсь решением в надежде справедливой критики  smile 
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0953 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.