如何让BufferedImage“变暗”?

时间:2014-01-14 12:52:41

标签: java swing bufferedimage

我正在绘制一个Bufferedimage

BufferedImage map = ImageIO.read(getClass().getResource("map.png"));

但是我想要a)在上面放一个更白的滤镜,或者b)改变alpha值,使它不那么明亮。我试过了

for (int x = 0; x < map.getWidth(); x++) {
        for (int y = 0; y < map.getHeight(); y++)
        {
            int tempcolor = map.getRGB(x, y);
            int newalpha = (60 << 24) | (tempcolor & 0x00ffffff);
            map.setRGB(x, y, newalpha);
        }
        }
g.drawImage(map, 0, 0, this);

但图像看起来与原始图像完全一样。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

你可以使用 RescaleOp ,因为它处理alpha,

    RescaleOp rescale = new RescaleOp(1.2f, 15, null);
    rescaleOp.filter(image, image); // Source and destination are the same.

参考此link也可以为您提供更多帮助

亮度控制再增加link here