Bilder bzw. SWT Images in einer Datei serialisieren und deserialisieren
-
Hallo zusammen,
ich speicher meine Bilder als InputStream in einer Derby-Datenbank als Blob. Die Datenbank kann leider die Bilder nicht in einer Datei exportieren bzw. importieren. Deshalb habe ich mir gedacht ich programmiere selber die Export und Import Funktionen! Die Export-Funktion funktioniert, indem ich die Bilder als InputStream aus der Datenbank lese und in einem byte[] speichere und anschliessend in einer Datei serialisiere. Man kann leider InputStream oder Images nicht serialisieren! Deswegen byte[]. Ich habe Probleme mit der Import-Funktion!
Beim deserialisieren lese ich das byte array und übergebe an die Klasse ByteArrayInputStream. Anhand des ByteArrayInputStream kann ich ein Image erzeugen! Pustekuchen !?! Irgendetwas passiert mit dem byte array!Export:
InputStream in = blob.getBinaryStream(); byte[] buf = new byte[in.available()]; while (in.read(buf) != -1){}
Import !?!
// imageData ist das byte Arrayin = new ByteArrayInputStream(imageData); pstm.setBinaryStream(4, in, (int)imageData.length);
Wenn ich jetzt das Image, dass ich in die Datenbank importiert habe ansprechen will, dann bekomme ich folgende Exception:
org.eclipse.swt.SWTException: Unsupported or unrecognized format
Ich habe auch das InputStream vorher und nachher in die Konsole ausgeben lassen. Sie sehen gleich aus!
Hat eine vielleicht eine Idee, wie man unter SWT Images in einer Datei serialisieren bzw. deserialisieren kann?