在 Java 中创建 Adob​​e XD 背景模糊效果

Create Adobe XD background blur effect in Java

我已经在 Adob​​e XD 中制作了部分应用程序的原型

现在是在 Java 中重现毛玻璃效果的时候了。然而,我能得到的最接近的是以下

眼尖的人可能会看到...它看起来很糟糕,与我的设计完全不同。

我通过截取屏幕相关部分的屏幕截图并对图像应用高斯模糊来实现下面的效果。我不知道如何实现上述外观,因此将不胜感激任何帮助。 到目前为止,您可以在下面看到我的代码

Robot robot = new Robot();

Toolkit myToolkit = Toolkit.getDefaultToolkit();
Dimension screenSize = myToolkit.getScreenSize();

Rectangle screen = new Rectangle(screenSize);

BufferedImage screenBlurImage = robot.createScreenCapture(screen);
//get relevant section
screenBlurImage = screenBlurImage.getSubimage(457,415,1006,107);
//set image
image.setImage(screenBlurImage);
//Apply blur
BoxBlur bb = new BoxBlur();
bb.setWidth(5);
bb.setHeight(5);
bb.setIterations(3);

image.setImage(SwingFXUtils.toFXImage(screenBlurImage, null ));

image.setEffect(bb);

我最终将 Adob​​e XD Design 导出为 HTML 网页并使用具有透明背景的 JavaFX Webview 渲染它,原来 Adob​​e XD 模糊背景的方式是使用以下 CSS选项:

box-shadow: inset 0 0 0 200px rgba(0, 0, 0, 0.5);
filter: blur(13px);