Moin
mir steht hier 1.4.2 zur Verfügung, sollte also gehen.
Du hast ein BufferedImage/RenderedImage-Object ? Nein ? (BufferedImage BI = ImageIO.read(new File(„Datei-mit-Bild“)); , oder nochmal fragen)
Du brauchst irgendwas in dem die Bild-daten gespeichert werden sollen:
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
Da schreibt man jetzt das Bild rein:
ImageIO.write(RenderedImage im, „jpg“, buffer);
byte[] BILD_DATEN = buffer.toByteArray();
Das Array müsste man per ObjectStreams verschicken können (evtl nochmal in eine andere Klasse einpacken, so dass der Name des Bildes gleich mit verschickt wird). Auf der anderen Seite:
ByteArrayInputStream BIN = new ByteArrayInputStream(BILD_DATEN);
BufferedImage image = ImageIO.read(BIN);
Noch ein paar Takte zu ObjectStreams:
-
Die sind realtiv langsam.
-
Die funktionieren nur wenn auf allen beteiligten VM exakt die gleichen class-Dateien liegen.
-
Bei grossen Bäumen (bei Objecten die auf viele Objecte verweisen) können sie die JVM töten (Bufferoverflow)
-
Wenn man ein Object mehrmals verschickt kommt immer nur die erste „Version“ an, der Rest geht verloren. (ausser man ruft zwischen den einzelnen writes reset() auf, was den Stream aber stark einbremst)
Wie du siehst sind ObjectStreams nicht gerade eine saubere Sache. Viel Glück damit.
cu