0

我正在尝试使用类似 Vista Aero Glass 的背景创建覆盖层来代替普通窗口。我的部分答案似乎在这里,但我想知道如何在 Swing/AWT 中获得模糊效果。看起来像一个开始:

public BufferedImage processImage(BufferedImage image) {
    float[] blurMatrix = { 1.0f / 9.0f, 1.0f / 9.0f, 1.0f / 9.0f, 1.0f / 9.0f, 1.0f /  
            9.0f, 1.0f / 9.0f, 1.0f / 9.0f, 1.0f / 9.0f, 1.0f / 9.0f };
    BufferedImageOp blurFilter = new ConvolveOp(new Kernel(3, 3, blurMatrix),
            ConvolveOp.EDGE_NO_OP, null);
    return blurFilter.filter(image, null);
}

...但我真的很想获得一场势均力敌的比赛。看来流程应该是:

  1. 模糊背景图像
  2. 涂上透明的灰色(或任何你想要的背景颜色)
  3. 然后绘制不透明的窗口内容

如果我做对了,我可能会加入 Aero 窗口边框阴影。

我在正确的轨道上吗?我应该多精确地进行模糊以获得相同的外观?也许有人已经解决了这个问题?(作为参考,打开 Vista 开始菜单并查看右侧。)

4

1 回答 1

1

我没有手头的解决方案,但您绝对可以在模糊阶段叠加颜色。您需要了解的有关 Swing 效果和 Swing 图像效果的一切都在出色的Filthy Rich Clients中。你的问题的答案肯定在那里。

事实上,如果您查看示例部分并从该站点下载第 8 章的代码,就会有代码可以进行所需的模糊和着色。

谢谢,jT

于 2009-08-30T22:22:26.287 回答