Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > рендеринг с полупрозрачностью


Автор: JavaDell 20.6.2011, 13:51
Рисую линии составленные с помощью GeneralPath, хочу делать их полупрозрачными.
Тоесть имеется слайдер, который регулировал бы прозрачность этих линий.
Делаю так:

Код

g2.setColor(Color.RED);
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha));
for(GeneralPath gp : lines) {
    g2.draw(gp);
}

Получается чудовищно медленно. Рисую на BufferedImage.
Массив lines не большой, около 400 штук.
Есть ли другой способ осуществить задуманное?
Или я что-то не так делаю.

Автор: Skipy 20.6.2011, 14:22
А чего бы им просто цвет прозрачный не поставить? Или отрисовать на прозрачном изображении, а уж ему при отрисовке ставить прозрачность через AlphaComposite. 400 линий на самом деле - это весьма много.

Автор: JavaDell 20.6.2011, 14:41
Если ставить прозрачный цвет, получается таже фигня.
Очень медленно.
Итак стоит прозрачный BufferedImage, менять прозрачность ему нельзя, так как на нем еще рисуются другие компоненты, кроме линий.

Автор: Connie 21.6.2011, 14:03
Цитата(JavaDell @  20.6.2011,  14:41 Найти цитируемый пост)
Очень медленно.

Я могу ошибаться, т.к. давно не работал с shapes и graphics, но что бы было быстрее, нужно сделать вначале сложную shape, которая будет состоять из всех этих 400-т линий и только потом использовать метод draw

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)