Wie speichere ich einen hochauflösenden Schnappschuss eines JavaFX Canvas?

Ich habe ein Bild auf einer Leinwand erstellt, das mithilfe einer Transformation für die Anzeige verkleinert wird. Es befindet sich auch in einem ScrollPane, was bedeutet, dass nur ein Teil des Bildes sichtbar ist.

Ich muss eine Momentaufnahme der gesamten Leinwand machen und diese als hochauflösendes Bild speichern. Wenn ich Canvas.snapshot verwende, erhalte ich nach dem Verkleinern ein beschreibbares Bild des sichtbaren Teils des Bildes. Dies führt dazu, dass ein Teilbild mit niedriger Auflösung gespeichert wird.

Wie erstelle ich einen Schnappschuss, der die gesamte Zeichenfläche (nicht nur das Ansichtsfenster des Bildlauffensters) und die Auflösung vor der Transformation nach unten enthält?

Ich mache momentan nichts Besonderes, nur das:

public WritableImage getPackageCanvasSnapshot()
{
    SnapshotParameters param = new SnapshotParameters();
    param.setDepthBuffer(true);
    return packageCanvas.snapshot(param, null);
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage