You are here

JavaFX 2.0 Image aus BufferedImage (RenderedImage) direkt erstellen

Error message

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls in menu_set_active_trail() (line 2344 of /kunden/151441_87437/webseiten/includes/menu.inc).


JavaFX 2.0 ist zwar gut ausgerüstet in sachen Images. Per default werden so einige Bilddateitypen unterstützt.
Was aber, wenn weitere Bilddateiformate angezeigt werden sollen?
Oder - selbst/dynamisch erzeugte BufferedImages(RenderedImages, u.a.) sollen nicht erst umständlich als Bilddatei zwischengespeichert und danach wieder geladen und vielleicht auch obendrein hinterher wieder gelöscht werden...?

Klappt mit einem kleinen Umweg über einen ByteArrayOutputStream, der von einem JavaFX 2.0 Image als Source geladen werden kann. Anstatt einer Datei.

Mit Java Advanced Imaging (JAI):

try {
      RenderedImage src = JAI.create("fileload", filename);
      ByteArrayOutputStream tmp_out = new ByteArrayOutputStream();
      JAI.create("encode", src, tmp_out, "PNG", null);
      InputStream tmp_in = new ByteArrayInputStream(tmp_out.toByteArray());
      Image image = new Image(tmp_in);
      } catch (Exception ex) {
      ...
      }

Mit ImageIO:

try {
      BufferedImage bufferedimage = ...
      ByteArrayOutputStream tmp_out = new ByteArrayOutputStream();
      ImageIO.write(bufferedimage, "PNG", tmp_out);
      InputStream tmp_in = new ByteArrayInputStream(tmp_out.toByteArray());
      Image image = new Image(tmp_in);
      } catch (Exception ex) {
      ...
      }


Natürlich muß es nicht das Dateiformat "PNG" sein. Dient hier nur als Beispiel.
Auch habe ich hier nicht auf Schließen von Streams, Freigeben von Instanzen und dergleichen geachtet.



Belgium Football Jersey 2016, belgium International Soccer Team, s-2xl Belgium Home Shorts 18 Models Belgium Home Short Trousers http://jerseyalphago.com/71-Belgium-Football-Jersey-2016-Belgium-International-Soccer-Team-S-2XL-Belgium-home-shorts-18-models-Belgium-home-Short-Trousers.html