Wenn ich einen Screenshot meiner Szene in JavaFx mache, speichere ich BufferedImage in einer Datei als PNG/JPG. Wenn ich versuche, die Bildgröße auf die volle Länge zu maximieren, bekomme ich schwarze Ränder auf dem Bild von der linken Seite des Bildes nach unten, ohne dass das Bild seine Größe erhöht. Die Größe des Bildes wird nur erhöht, bis ich meine Abmessungen wie unten gezeigt auf 1300x700 eingestellt habe.Unerwünschte schwarze Ränder beim Versuch, das Bild auf die volle Größe zu vergrößern
BufferedImage image = new BufferedImage(1300, 700, BufferedImage.TYPE_INT_RGB);
Sobald ich jedoch die Abmessungen größer als 1300x700 vergrößern, erscheinen die schwarzen Ränder.
Das folgende Bild wird auf
BufferedImage image = new BufferedImage(1500, 900, BufferedImage.TYPE_INT_RGB);
Wie Sie sehen können, ein Teil des Bildes noch abgeschnitten, und es gibt jetzt eine große schwarze Grenze neben dem Bild statt der tatsächliches Bild in voller Größe.
Das folgende Bild wird auf
BufferedImage image = new BufferedImage(1300, 700, BufferedImage.TYPE_INT_RGB);
Wie Sie sehen können, wird das Bild nach wie vor an der gleichen Stelle abgeschnitten, aber es gibt keine schwarzen Ränder an der Seite mit ihm.
Wie kann ich den gesamten Schnappschuss meiner aktuellen Szene in eine Datei einfügen, ohne diese Ränder und ohne dass der Inhalt abgeschnitten wird?
Hier ist mein Code:
File fa = new File("test.jpg");
snapshot = quotes.getScene().snapshot(null);
RenderedImage renderedImage = SwingFXUtils.fromFXImage(snapshot, null);
BufferedImage image = new BufferedImage(1300, 700, BufferedImage.TYPE_INT_RGB);
image.setData(renderedImage.getData());
ImageIO.write(image, "jpg", fa);
Try WritableImage als Parameter für Snapshot-Methode zu setzen, etwa so:. 'Quotes.getScene() Schnappschuss (Snapshot);' – Eeliya