Gibt es eine Möglichkeit, ein skaliertes Bufferedimage anzuzeigen, das mit einem Roboter-Screencapture mit voller AuflösJava

Java-Forum
Anonymous
 Gibt es eine Möglichkeit, ein skaliertes Bufferedimage anzuzeigen, das mit einem Roboter-Screencapture mit voller Auflös

Post by Anonymous »

Ich versuche, eine Bildschirmaufnahme als Imageicon auf einem JLabel anzuzeigen. Um das BufferedImage -Objekt zu erzeugen, habe ich ein Roboterobjekt zusammen mit einer Multiresulionscreencapture verwendet. Wie in dieser Stackoverflow -Frage erwähnt, wird die Wiederherstellung der Erfassung je nach Anzeigeskala geändert, und mein Display hat eine Einstellung von 175%. Wenn ich die skalierte Down -Capture anzeige, ist es die richtige Größe, ist aber nicht die gleiche Auflösung wie das Display. Wenn ich die Erfassung in voller Größe anzeige, ist es größer als der erfasste Bereich, aber die korrekte Auflösung. />
skaliert mit bilinear -Interpolation: < /p>

Code: Select all

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));
}
Ich habe das Bild in voller Größe mit Graphics2D manuell ausprobiert und die Anti-Aliasing- und Interpolationseinstellungen mit einiger Verbesserungen angepasst, aber nicht perfekt/was ich suche. Das gewünschte Ergebnis besteht darin, dass das Bild im Fenster die gleiche Auflösung und Größe wie der native Bildschirm angezeigt wird.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post