Как добавить прожекторы к изображению - PullRequest
1 голос
/ 10 ноября 2008

У меня есть изображение, на котором я хочу показать некоторые «прожекторы», как они делают по телевизору. Остальная часть изображения должна быть более темной, чем оригинал, и человек, которого я освещаю, должен быть нормальным. У меня есть x, y и радиус прожектора, но я не уверен, как изменить яркость в этом месте.

Кроме того, если у меня есть два прожектора, и они пересекаются, пересечение должно быть ярче, чем любой из прожекторов.

Ответы [ 2 ]

1 голос
/ 10 ноября 2008

Используйте RescaleOp для исходного изображения и субизображений. Учитывая, что у вас есть буферизованное изображение (называемое biDest), которое содержит изображение, вызовите RescaleOp (0.6, 0, null), чтобы сделать его темнее. Затем, чтобы добавить (прямоугольный) прожектор, вызовите следующее:

    public void spotLight(int x, int y, int w, int h)
    {
        BufferedImage i = biDest.getSubimage(x, y, w, h);

        RescaleOp rescale = new RescaleOp(SPOTLIGHT_BRIGHTNESS, 0, null);
        rescale.filter(i, i);

        repaint();
    }
0 голосов
/ 10 ноября 2008

Простой способ - преобразовать цвет в HSL, понизить L, чтобы затемнить, увеличить, чтобы сделать светлее, затем преобразовать обратно в RGB и установить пиксель.

http://www.mpa -garching.mpg.de / MPA-ГРАФИКА / HSL-rgb.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...