Как я могу создать тень, внутреннее свечение и внешнее свечение в Java Swing? - PullRequest
20 голосов
/ 13 июля 2010

Я генерирую некоторые изображения с использованием интерфейса Graphics2D, и иногда мне хотелось бы иметь возможность рисовать какой-либо текст на изображении и применять к нему такие же эффекты, как в Adobe Photoshop.

Прямо сейчас, чтобы создать «тень» для текста, я рисую текст дважды, один раз в исходном цвете, и один раз в черном с небольшим (1px) смещением x & y. К сожалению, это слишком упрощенно, так как мне нужно больше контроля над тенью (непрозрачность, размер, разброс).

Что касается Inner Glow и Outer Glow, я не совсем уверен, с чего начать; маска / градиентная краска / альфа-смешение?

Существует ли библиотека Java для создания эффектов такого типа? Если нет, то как бы вы пошли на создание этих эффектов?

Ответы [ 2 ]

20 голосов
/ 27 июля 2010

Я очень рекомендую книгу Грязные богатые клиенты .Глава 16 говорит о тенях.Вы также можете быть заинтересованы в этом сообщении в блоге .Глава 17 рассказывает о светящемся эффекте.Пример кода на сайте для обоих.Остальная часть книги также заслуживает прочтения.Я не мог отложить книгу, когда прочитал ее.В книге объясняется и демонстрируется множество других забавных эффектов.

Сайт jhlabs также является хорошим сайтом, как уже упоминалось.*

Для библиотеки я бы посмотрел Painters в SwingX library .Вот несколько учебных пособий:

2 голосов
/ 13 июля 2010

На этом сайте есть много информации о фильтрах и эффектах, я думаю, что исходный код приложения также доступен.

...