Создание эффекта размытия фона Adobe XD в Java - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть прототип части моего приложения в Adobe XD Desktop render

И теперь пришло время воссоздать этот эффект матового стекла в Java. Тем не менее, самое близкое, что я мог бы получить, это следующее enter image description here

Как вы можете видеть более проницательными из вас ... это выглядит плохо, и совсем не похоже на мой дизайн.

Я добился следующего взгляда, сделав снимок экрана соответствующей части экрана и применив к изображению гауссово размытие. Я понятия не имею, как добиться вышеупомянутого взгляда, поэтому любая помощь будет принята с благодарностью. Ниже вы можете увидеть мой код до сих пор

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);

1 Ответ

1 голос
/ 11 ноября 2019

В итоге я экспортировал Adobe XD Design в виде веб-страницы HTML и отрисовал его с помощью веб-просмотра JavaFX с прозрачным фоном. Оказывается, Adobe XD размывает фон с помощью следующих параметров CSS:

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