Создайте эффект размытия фона Adobe XD в 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);

person Leonardo P.    schedule 08.11.2019    source источник
comment
Чтобы лучше помочь, опубликуйте правильный минимально воспроизводимый пример, показывающий вашу проблему.   -  person Frakcool    schedule 09.11.2019


Ответы (1)


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

box-shadow: inset 0 0 0 200px rgba(0, 0, 0, 0.5);
filter: blur(13px);
person Leonardo P.    schedule 11.11.2019