我正在绘制一个缓冲图像
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);
但图像看起来与原始图像一模一样。有什么想法吗?
最佳答案
您可以使用RescaleOp,因为它可以处理 Alpha,
RescaleOp rescale = new RescaleOp(1.2f, 15, null);
rescaleOp.filter(image, image); // Source and destination are the same.
引用这个link还可能对您有更多帮助
再一个link here用于亮度控制
关于java - 如何制作 BufferedImage "fainter"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21114054/