Java 如何在GRAL中更改插图颜色?
我正在尝试创建GRAL图并将其导出为JPG 不知道为什么,但“插入”区域(边界外)的颜色似乎默认为黑色。这尤其令人困惑,因为文档似乎表明插图默认为白色 如何更改插图的颜色 下面是我如何导出jpg的Java 如何在GRAL中更改插图颜色?,java,graph,charts,Java,Graph,Charts,我正在尝试创建GRAL图并将其导出为JPG 不知道为什么,但“插入”区域(边界外)的颜色似乎默认为黑色。这尤其令人困惑,因为文档似乎表明插图默认为白色 如何更改插图的颜色 下面是我如何导出jpg的 private void getJpg(BarPlot plot) { BufferedImage bImage = new BufferedImage(800, 600, BufferedImage.TYPE_INT_ARGB); Graphics2D g2d = (Graphics
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);
}
}
这是我当前的结果(现在在黑背景上使用白色文本,但希望在白背景上使用黑色文本) 我想出来了!(在同事的帮助下)
插入区域默认为透明黑色(RGBA(0,0,0,0))。因此,当图形导出为JPEG(不支持透明度)时,它会删除alpha值并将其全部渲染为黑色。通过导出为png,我能够保持透明度,并且当嵌入到白色背景的文档中时,图形看起来很好
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);
}
}
我知道了!(在同事的帮助下)
插入区域默认为透明黑色(RGBA(0,0,0,0))。因此,当图形导出为JPEG(不支持透明度)时,它会删除alpha值并将其全部渲染为黑色。通过导出为png,我能够保持透明度,并且当嵌入到白色背景的文档中时,图形看起来很好
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);
}
}