繁体   English   中英

如何向图像添加聚光灯

[英]How do I add a spotlights to an image

我有一张想要像在电视上一样显示“聚光灯”的图像。 图像的其余部分应该比原始图像更暗,而我要聚焦的人应该是正常的。 我有聚光灯的x,y和半径,但是我不确定如何更改该位置的亮度。

另外,如果我有两个聚光灯并且它们相交,则交点应该比两个聚光灯都亮。

在原始图像和子图像上使用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();
    }

一种简单的方法是将颜色转换为HSL,将较低的L转换为深色,将其转换为RGB,然后设置为像素。

http://www.mpa-garching.mpg.de/MPA-GRAPHICS/hsl-rgb.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM