2016-11-28 3 views
1

Ich versuche, GRAL-Grafiken zu erstellen und sie als JPGs zu exportieren.Wie ändere ich die Inset-Farbe in GRAL?

Nicht sicher warum, aber die Farbe der 'Inset'-Bereiche (außerhalb der Grenze) scheint standardmäßig schwarz zu sein. Dies ist besonders verwirrend, da die Dokumente darauf hindeuten, dass die Einschübe standardmäßig weiß sind.

Wie kann ich die Farbe des Inset ändern?

Hier ist, wie ich den Export der jpg

private void getJpg(BarPlot plot) { 
    BufferedImage bImage = new BufferedImage(800, 600, BufferedImage.TYPE_INT_ARGB); 
    Graphics2D g2d = (Graphics2D) bImage.getGraphics(); 
    DrawingContext context = new DrawingContext(g2d); 
    plot.draw(context); 
    DrawableWriter wr = DrawableWriterFactory.getInstance().get("image/jpeg"); 
    try { 
     wr.write(plot, new FileOutputStream("/path/out.jpg"), 800, 600); 
    } catch (IOException err) { 
     System.out.println(err); 
    } 
} 

Hier ist meine aktuelle Ergebnis ist (vorerst weißer Text auf schwarzem bg verwenden, aber wollen schwarzen Text auf weißem bg). current output

Antwort

0

Ich habe es herausgefunden! (mit Hilfe eines Mitarbeiters)

Der Inset-Bereich ist standardmäßig transparent schwarz (RGBA (0,0,0,0)). Wenn der Graph als JPEG exportiert wird (der keine Transparenz unterstützt), wird der Alpha-Wert daher gelöscht und alles wird schwarz dargestellt. Durch den Export als PNG konnte ich die Transparenz erhalten und die Grafiken sehen jetzt gut aus, wenn sie in ein Dokument mit weißem Hintergrund eingebettet werden.

private static void getPng(XYPlot plot, String fileName) { 
    BufferedImage bImage = new BufferedImage(800, 600, BufferedImage.TYPE_INT_RGB); 
    Graphics2D g2d = (Graphics2D) bImage.getGraphics(); 
    DrawingContext context = new DrawingContext(g2d); 
    plot.draw(context); 
    DrawableWriter wr = DrawableWriterFactory.getInstance().get("image/png"); 
    try { 
     wr.write(plot, new FileOutputStream(fileName + ".png"), 800, 600); 
    } catch (IOException err) { 
     System.out.println(err); 
    } 
}