Podczas wykonywania zrzutu ekranu mojej sceny w JavaFx, zapisuję BufferedImage w pliku jako PNG/JPG. Kiedy próbuję zmaksymalizować rozmiar obrazu do pełnej długości, otrzymuję czarne ramki na obrazie od lewej strony obrazu do dołu, bez powiększania obrazu w ogóle. Rozmiar obrazu zwiększa się tylko do momentu, w którym ustawię moje wymiary na 1300 x 700, jak pokazano poniżej.Niepożądane czarne obramowania przy próbie powiększenia obrazu do pełnego rozmiaru
BufferedImage image = new BufferedImage(1300, 700, BufferedImage.TYPE_INT_RGB);
Jednak po zwiększeniu wymiarów większych niż 1300 x 700 pojawiają się czarne ramki.
Poniższy obraz jest ustawiony na
BufferedImage image = new BufferedImage(1500, 900, BufferedImage.TYPE_INT_RGB);
Jak widać, część obrazu jest nadal odcięta i obecnie istnieje duże czarne obramowanie obok obrazu zamiast rzeczywisty obraz w pełnym rozmiarze.
Poniższy obraz jest ustawiony na
BufferedImage image = new BufferedImage(1300, 700, BufferedImage.TYPE_INT_RGB);
Jak widać, obraz jest nadal odcięta w tym samym miejscu co wcześniej, ale nie czarne obramowanie wzdłuż boku z nim.
Jak mogę dopasować całą migawkę mojej obecnej sceny do jednego pliku bez tych granic i bez obcięcia zawartości?
Oto mój kod:
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);
spróbuj ustawić WritableImage jako parametr do metody snapshot, coś takiego:. 'Quotes.getScene() migawki (snapshot);' – Eeliya