Есть ли способ отобразить масштабированный буферизатор, который выглядит идентично экране робота с полным разрешением? [JAVA

Программисты JAVA общаются здесь
Anonymous
Есть ли способ отобразить масштабированный буферизатор, который выглядит идентично экране робота с полным разрешением? [

Сообщение Anonymous »

Я пытаюсь отобразить захват экрана в качестве Imageicon на Jlabel. Чтобы сгенерировать объект BufferedImage, я использовал объект робота вместе с мультиселяцией. Как отмечалось в этом вопросе Stackoverflow, получение получения захвата изменяется в зависимости от шкалы дисплея, а на моем дисплее настройка масштаба на 175%. Когда я отображаю масштабированный захват, это правильный размер, но не то же разрешение, как дисплей. Когда я отображаю полноразмерный захват, он больше, чем захваченная область, но правильное разрешение.
масштабировано:

/>
масштабировано билинеарной интерполяцией:

Код: Выделить всё

public static void updateCurrentSelection(Rectangle rect) {
Robot robot;
try {
robot = new Robot();
} catch (AWTException e) {
e.printStackTrace();
return;
}
MultiResolutionImage multiResImg = robot.createMultiResolutionScreenCapture(rect);
java.util.List imgs = multiResImg.getResolutionVariants();

Image img = imgs.getLast(); // Gets largest image
mainMenu.setImage(img, imgs.getFirst().getWidth(mainMenu), imgs.getFirst().getHeight(mainMenu)); Passing smaller size to be resized to
}

public void setImage(Image img, int width, int height) {
BufferedImage buf = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = buf.createGraphics();
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.drawImage(img, 0, 0, width, height, null);
g.dispose();

selectionLabel.setIcon(new ImageIcon(buf));
}
Я пробовал вручную масштабировать полноразмерное изображение, используя Graphics2D и настраивая настройки с анти-алиатами и интерполяцией с некоторым улучшением, но не идеально/что я ищу. Желаемый результат состоит в том, чтобы изображение отображалось на окне, чтобы быть таким же разрешением и размером, как и нативном экране.

Подробнее здесь: https://stackoverflow.com/questions/796 ... -to-a-full

Вернуться в «JAVA»