在 Java 中创建 Adobe XD 背景模糊效果
Create Adobe XD background blur effect in Java
我已经在 Adobe 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);
我最终将 Adobe XD Design 导出为 HTML 网页并使用具有透明背景的 JavaFX Webview 渲染它,原来 Adobe XD 模糊背景的方式是使用以下 CSS选项:
box-shadow: inset 0 0 0 200px rgba(0, 0, 0, 0.5);
filter: blur(13px);
我已经在 Adobe 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);
我最终将 Adobe XD Design 导出为 HTML 网页并使用具有透明背景的 JavaFX Webview 渲染它,原来 Adobe XD 模糊背景的方式是使用以下 CSS选项:
box-shadow: inset 0 0 0 200px rgba(0, 0, 0, 0.5);
filter: blur(13px);