2016-06-29 8 views
2

Ich versuche ein javaFX LineChart als PNG zu speichern und möchte, dass der Hintergrund transparent ist. Wenn ich das tue:JavaFX LineChart - transparentes Bild speichern

SnapshotParameters spa = new SnapshotParameters(); 
spa.setFill(Color.TRANSPARENT); 
chart.setStyle("-fx-background-color: transparent"); 
WritableImage writableImage = new WritableImage(width,height); 
spa.setTransform(Transform.scale(x,y)); 
WritableImage img= chart.snapshot(spa, writableImage);  

ich am Ende mit etwas wie folgt auf:

img 1

Wie man hier sehen kann, ist die Achse Zecken und Etikett transparent bekommen, aber der Plotbereich selbst hat immer noch den Hintergrund graue Farbe. Gibt es eine Möglichkeit, dies zu entfernen?

+2

laden Sie Ihre Grafik in [Scenic View] (http: //fxexperience.com/scenic-view/) und dieses Tool verwenden, um die Komponenten des Diagramms zu untersuchen, um festzustellen, welche den nicht transparenten Bereich bereitstellen. Oder extrahieren Sie modena.css aus jfxrt.jar in Ihrem JRE-Verzeichnis und lesen Sie, um herauszufinden, welcher CSS-Stil die Hintergrundfarbe des Diagramms setzt. Oder lesen Sie [Styling-Diagramme mit CSS] (http://docs.oracle.com/javafx/2/charts/css-styles.htm#CIHGIAGE) (beachten Sie jedoch, dass einige der Informationen im Diagramm-Styling-Tutorial sind) veraltet - es liefert jedoch transparente Hintergrundinformationen. – jewelsea

+0

@jewelsea Das hat funktioniert, danke! –

Antwort

2

Wenn Sie nicht bereits mit der Spitze jewelsea Ihnen zur Verfügung gestellten getan haben, können Sie ein Stylesheet zu Ihrem Diagramm mit folgendem Inhalt hinzufügen:

.chart > .chart-content > .chart-plot-background { 
    -fx-background-color: transparent; 
}