Hallo allerseits. Ich nutze JSF mit Richfaces und möchte in einem xhtml-file eine Grafik ausgeben, welche ich zuvor im Speicher generiert habe. Was ich tue ist das folgende: Ich nutze JFreechart um Diagramme zu generieren. Bislang hatte ich die Diagramme als File auf HD gespeichert und dann einfach die url im xhtml eingebuden. Um nun die physische Speicherung zu umgehen, habe ich die Klasse aus JFreeChart modifizuiert und eben anstelle eines FileOutputStreams einen BufferedOutputStream generiert.
Meine Diagramm selber erstelle ich in der folgenden Methode:
Zugegeben, hier steckt noch der ganze alte Code mit den Files und Urls zu dem File drin, aber das sollte ja zunächst einmal egal sein. Meine Frage ist nun, wie ich das im Speicher generierte Bild in xhtml an der entsprechenden Stelle ausgeben kann? mein Code war halt bislang einfach ein <h:graficImage welches als url den Rückgabewert der f
+Methode getPrintCostBarPlot hatte ("damals war die Methode nicht void))
Kann mir da jemand helfen
Vielen Dank & lg
schlumsch
Code:
public static void saveChartAsPNG(File file, JFreeChart chart,
int width, int height, ChartRenderingInfo info)
throws IOException {
if (file == null) {
throw new IllegalArgumentException("Null 'file' argument.");
}
OutputStream out = new BufferedOutputStream(new ByteArrayOutputStream());
try {
MemoryChartUtilities_Schlumsch.writeChartAsPNG(out, chart, width, height, info);
}
finally {
out.close();
}
}
public static void writeChartAsPNG(OutputStream out, JFreeChart chart,
int width, int height, ChartRenderingInfo info)
throws IOException {
if (chart == null) {
throw new IllegalArgumentException("Null 'chart' argument.");
}
BufferedImage bufferedImage
= chart.createBufferedImage(width, height, info);
EncoderUtil.writeBufferedImage(bufferedImage, ImageFormat.PNG, out);
}
Meine Diagramm selber erstelle ich in der folgenden Methode:
Code:
public void getPrintCostBarPlot() {
....
MemoryChartUtilities_Schlumsch.saveChartAsJPEG(new File(costPlotSaveTo), chart,
320, //$NON-NLS-1$
220);
...
}
Zugegeben, hier steckt noch der ganze alte Code mit den Files und Urls zu dem File drin, aber das sollte ja zunächst einmal egal sein. Meine Frage ist nun, wie ich das im Speicher generierte Bild in xhtml an der entsprechenden Stelle ausgeben kann? mein Code war halt bislang einfach ein <h:graficImage welches als url den Rückgabewert der f
+Methode getPrintCostBarPlot hatte ("damals war die Methode nicht void))
Kann mir da jemand helfen
Vielen Dank & lg
schlumsch