Как создать тени, внутреннее свечение и внешнее свечение в Java Swing?
Я создаю некоторые изображения, используя интерфейс Graphics2D, и иногда я хотел бы нарисовать текст на изображении и применить к нему эффекты, подобные тем, которые есть в Adobe Photoshop.
Прямо сейчас, чтобы сгенерировать "тень" в тексте, я рисую текст дважды, один раз в исходном цвете и один раз в черном с небольшим (1px) x & y смещением. К сожалению, это слишком упрощенно, так как мне нужно больше контролировать тень (непрозрачность, размер, распространение).
Что касается Inner Glows и Outer Glows, я не уверен, с чего начать; маска/градиентная краска/альфа-смешивание?
Существует ли библиотека Java для создания этих типов эффектов? Если не так, как вы собираетесь создавать эти эффекты?
Ответы
Ответ 1
Я бы очень рекомендовал книгу Filthy Rich Клиенты. В главе 16 рассказывается о тени. Вы также можете быть заинтересованы в этом сообщении . В главе 17 говорится о сияющем эффекте. На веб-сайте есть пример кода для обоих. Остальная часть книги также стоит прочитать. Я не мог положить книгу, когда прочитал ее. Есть много других забавных эффектов, объясненных и продемонстрированных в книге.
сайт jhlabs также является хорошим сайтом, как уже упоминалось.
Edit:
Для библиотеки я бы посмотрел на Painters в SwingX library. Вот несколько руководств:
Ответ 2
Этот сайт содержит много информации о фильтрах и эффектах, я думаю, что исходный код приложения также доступен.