java - 如何制作 BufferedImage "fainter"?

标签 java swing 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);

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

最佳答案

您可以使用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/

相关文章:

java - 安卓 fragment 问题

java - 尝试将列表转换回数组时出现 NullPointerException

java - 如何使用正则表达式验证 JTable 的第一列?

java - 如何改变缓冲图像的亮度?

尝试从 String 转换为 PNG 时由 ZipException 引起的 Java IIOException

java - 使用 AlarmManager 每天在特定时间轮询用户位置

java - 无法让这款井字游戏公平进行

java - 将一个面板类的按钮连接到另一个面板类的数据

java - 如何在另一个图像上绘制图像?

java - Tomcat 8 迁移 - 如何获取响应 cookie