Как я могу создать тень, внутреннее свечение и Внешнее свечение в Java Swing?

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

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

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

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

2 ответов


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

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

Edit:

для библиотеки я бы посмотрел на художников в библиотека SwingX. Вот несколько учебники:


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