2016-06-29 2 views
2

Я пытаюсь сохранить javaFX LineChart как PNG, и я хотел бы, чтобы фон был прозрачным. Если я:JavaFX LineChart - сохранить прозрачное изображение

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);  

я в конечном итоге с чем-то вроде этого:

img 1

Как вы можете видеть здесь, Ось клещами и этикетки получить прозрачный, но черчения область сама до сих пор фон серый цвет. Есть ли способ удалить это?

+2

нагрузки на диаграмме в [Scenic View] (HTTP: //fxexperience.com/scenic-view/) и использовать этот инструмент для анализа компонентов диаграммы, чтобы определить, какие из них предоставляют непрозрачную область. Или извлеките modena.css из jfxrt.jar в каталог JRE и прочитайте это, чтобы узнать, какой стиль css устанавливает цвет фона диаграммы. Или прочитайте [стилистические диаграммы с CSS] (http://docs.oracle.com/javafx/2/charts/css-styles.htm#CIHGIAGE) (хотя имейте в виду, что часть информации в учебнике по стилю диаграммы устаревший - он действительно предоставляет прозрачную фоновую информацию). – jewelsea

+0

@jewelsea Это сработало спасибо! –

ответ

2

Если вы еще не сделали это с jewelsea наконечника вы предоставили, вы можете добавить таблицу стилей к графике следующего содержания:

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