Bilder -> SWT Images in einer Datei serialisieren und des

Status
Nicht offen für weitere Antworten.

volk

Mitglied
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:

Code:
InputStream in = blob.getBinaryStream();
byte[] buf = new byte[in.available()];
while (in.read(buf) != -1){}

Import !?!
// imageData ist das byte Array
Code:
in = 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:

Code:
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?
 

AMiGA

Bekanntes Mitglied
Huhu,

unabhängig von SWT serialisiere/deserialisiere ich Images so:

Code:
// serialization
ByteArrayOutputStream byteArrayStream = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "png", byteArrayStream);

Code:
// deserialization
ByteArrayInputStream byteArrayStream = new ByteArrayInputStream(byteArray);
BufferedImage image = ImageIO.read(byteArrayStream);
 

volk

Mitglied
Hallo AMiGA,

ich werde es ausprobieren und dir noch Bescheid geben, ob es funktioniert hat!

Ich möchte das Image nicht alleine serialisieren sondern mit anderen Daten zusammen. Ich habe ein DTO-Objekt "Data Transfer Object". Dieses Objekt beihnhaltet setter-Methoden und unterandrem setImage. Nachdem ich meine Daten mit den setter-Methoden gesetzt habe, dann serialisiere ich mein DTO-Objekt.

Jetzt muss ich schauen, wie ich deinen Tipp bei mir im Zusammenhang mit dem DTO-Objekt realisieren kann!

Vielen Dank für den Tipp ;)
 

Sky

Top Contributor
Geht ganz einfach, dein DTO-Objekt zu schreiben/lesen:

Code:
    // schreiben
    try {
      ObjectOutputStream oos = new ObjectOutputStream( new FileOutputStream( "c:/file.out" ) );
      oos.writeObject(myObject);
    } catch( IOException ex ) {
      ex.printStackTrace();
    }
    
    // lesen
    try {
      ObjectInputStream ois = new ObjectInputStream( new FileInputStream( "c:/file.out" ) );
      myObject = ois.readObject();
    } catch( IOException ex ) {
    } catch( ClassNotFoundException ex ) {
    }
Beim Lesen nur daran denken, dass Du evtl. noch einen Cast durchfürhren musst, wenn 'myObject' nicht vom Typ Object ist.
 
T

tuxedo

Gast
Ich habe ein sehr ähnliches, wenn nicht sogar gleiches Problem:

Ich habe ein Objekt das von JPanel erbt. Darin existieren mehrere Objekte die auch von JPanel erben und die nun auch Images enthalten.
Versuche ich das "Hauptobjekt" zu serialisieren (habe auch deinen besagten Code getestet) dann kriege ich folgende Fehlermeldung:

sun.awt.image.ToolkitImage@1b67f74
java.io.NotSerializableException: sun.awt.image.ToolkitImage
at java.io_ObjectOutputStream.writeObject0(Unknown Source)
at java.io_ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io_ObjectOutputStream.writeSerialData(Unknown Source)
at java.io_ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io_ObjectOutputStream.writeObject0(Unknown Source)
at java.io_ObjectOutputStream.writeArray(Unknown Source)
at java.io_ObjectOutputStream.writeObject0(Unknown Source)
at java.io_ObjectOutputStream.access$100(Unknown Source)
at java.io_ObjectOutputStream$PutFieldImpl.writeFields(Unknown Source)
at java.io_ObjectOutputStream.writeFields(Unknown Source)
at java.awt.Container.writeObject(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io_ObjectStreamClass.invokeWriteObject(Unknown Source)
at java.io_ObjectOutputStream.writeSerialData(Unknown Source)
at java.io_ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io_ObjectOutputStream.writeObject0(Unknown Source)
at java.io_ObjectOutputStream.writeObject(Unknown Source)
at test.SerTest.main(SerTest.java:41)

Ich habe alle meine Objekte "serializabe" implementieren lassen. Das Problem scheint aber beim "ToolkitImage" zu liegen.

Ich will halt irgendwie das ganze Hauptobjekt serialisieren, und nicht die Bilder einzeln (was ja scheinbar machbar ist) zusätzlich zum Hauptobjekt...

Gibts da eine "einfache" Lösung. Oder gibt es eine andere Bibliothek die ähnlich wie "Image" des sun.awt.image.ToolkitImage funktioniert, sich aber serialisieren lässt ?

Gruss
Alex
 

volk

Mitglied
Hi!

Man kann ein Image leider nicht so einfach serialisieren! Du kannst nur die Daten von Deinem Image als byte-Array serialisieren. Vielleicht kann man auch ImageIO.write verwenden, um Images zu serialisieren!
 
T

tuxedo

Gast
Hi,
habs.. Arbeite einfach mti ImageIcons... Die lassen sich innerhalb eines Objekts 1a serialisieren. UND: Im Prinzip belibt alles beim alten da "intern" ja doch wieder mit Images gearbeitet wird. So irgendwas stand zumindest in "Java ist auch eine Insel 4"...


Für mich funzt das prima und ich muss sogut wie nix umbauen. Einzigster Nachteil: Man kann das ganze nicht so prima komprimieren. Aber das ist nicht weiter wild. Meine serialisierten Objekte sind sowieso nicht groß.

gruss
Alex
 

volk

Mitglied
Hi!

Die jpeg Bilder sind sowieso komprimiert! Ich weiss nur nicht, warum meine jpeg Bilder, die ich serialisiert habe sich noch einmal mit zip so stark wieder komprimieren lassen!?! Warum?
 
T

tuxedo

Gast
Komische Sache... Hast du mal kontrolliert wie groß ein einfaches serialisiertes JPEG wird ? Ich meine im vergleich zur eigentlichen JPEG Größe...

Gruss
Alex
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
MiMa Fonts, Icons, Bilder in JavaFX Anwendung AWT, Swing, JavaFX & SWT 5
F Bilder zu ausführbarer Jar-Datei hinzufügen AWT, Swing, JavaFX & SWT 5
G JPanel per Drag and Drop JButtons und Bilder ablegen AWT, Swing, JavaFX & SWT 1
G JPanel mit JButtons und Bilder AWT, Swing, JavaFX & SWT 5
Linjutsu Den Inhalten aus einer ArrayList Bilder zuweisen (Kartenspiel) AWT, Swing, JavaFX & SWT 8
M Swing Bilder in Swing anzeigen AWT, Swing, JavaFX & SWT 9
S AffineTranformation Bilder verschwinden von Anzeige bei Pan, Zoom AWT, Swing, JavaFX & SWT 6
G Bilder in javafx Project AWT, Swing, JavaFX & SWT 11
N Bilder auf Button einfügen und mehrmals ändern (ein Button, mehrere ActionListener) AWT, Swing, JavaFX & SWT 2
N eclipse Java, bilder benutzten Funktioniert nicht AWT, Swing, JavaFX & SWT 6
Kirby.exe Bilder in GUI einfügen AWT, Swing, JavaFX & SWT 8
T Bilder bei einem JFrame einfügen AWT, Swing, JavaFX & SWT 4
K JLabel mit Bilder im nicht initialisierten JPanel hinzufügen AWT, Swing, JavaFX & SWT 5
L Bilder werden in exportierter Datei nicht geladen AWT, Swing, JavaFX & SWT 6
C Bilder so einbinden, dass sie sich ändern AWT, Swing, JavaFX & SWT 6
J Bilder aus dem SceneBuilder werden in der Jar nicht dargestellt AWT, Swing, JavaFX & SWT 4
TheWhiteShadow JavaFX Bilder werden ungewollt Skaliert AWT, Swing, JavaFX & SWT 1
B JavaFX Bilder in einem Gewissen bereich halten AWT, Swing, JavaFX & SWT 1
J Bilder proportional verkleiner AWT, Swing, JavaFX & SWT 12
E Bilder skalieren AWT, Swing, JavaFX & SWT 4
DaCrazyJavaExpert Swing Bilder überlagern AWT, Swing, JavaFX & SWT 19
A Bilder als Hintergrund AWT, Swing, JavaFX & SWT 2
@SupressWarnings() JavaFX Bilder in executable jar laden AWT, Swing, JavaFX & SWT 5
Sugan JavaFX Bilder drucken AWT, Swing, JavaFX & SWT 0
K JPanel Bilder bei Windows nicht darstellbar AWT, Swing, JavaFX & SWT 6
Sugan Java FX Verzeichnisüberwachung -> Bilder auf GUI anzeigen AWT, Swing, JavaFX & SWT 4
E AWT Bilder als "Array" abspeichern. AWT, Swing, JavaFX & SWT 4
MrSnake Bilder aus Unterordner einfügen AWT, Swing, JavaFX & SWT 2
I 2D-Grafik Bilder Eingefügt, button jetzt im Hintergrund AWT, Swing, JavaFX & SWT 2
C SWT Treeview mit Bilder im Label verändert Expanded Icon AWT, Swing, JavaFX & SWT 1
M Swing JTextPane, Bilder und Text-flow AWT, Swing, JavaFX & SWT 2
A Mit dem Scene Builder eine Collage erstellen (Bilder beziehen aus Flickr) AWT, Swing, JavaFX & SWT 1
thet1983 JTable Bilder AWT, Swing, JavaFX & SWT 6
GenerationLost Bilder an bestimmten Platz einfügen/Objekte visualisieren AWT, Swing, JavaFX & SWT 1
F Bilder in jFrame einfügen AWT, Swing, JavaFX & SWT 3
J Bilder als Variable an einem Objekt speichern AWT, Swing, JavaFX & SWT 3
I Swing Bilder werden nach Export nicht angezeigt AWT, Swing, JavaFX & SWT 1
D 2D-Grafik Bilder anzeigen AWT, Swing, JavaFX & SWT 4
J Bilder auf JPanel (im JScrollPane) nacheinander laden AWT, Swing, JavaFX & SWT 0
vodkaz JFrame,Bilder und Zeitverzögerung AWT, Swing, JavaFX & SWT 2
A Swing Bilder werden nicht angezeigt AWT, Swing, JavaFX & SWT 3
I SWT Bilder, bzw. ein einzelnes Bild AWT, Swing, JavaFX & SWT 6
M Bilder zeichnen, NullPointer Exception AWT, Swing, JavaFX & SWT 3
Xbody 2D-Grafik JavaFX Bilder transformieren AWT, Swing, JavaFX & SWT 2
C 2D-Grafik Steganographie - Verschlüsselung von Dateien in Bildern - Bilder zeigen schwarze Rechtecke AWT, Swing, JavaFX & SWT 13
P Durch Bilder Scrollen AWT, Swing, JavaFX & SWT 2
F Bilder werden nicht in's Array geladen AWT, Swing, JavaFX & SWT 4
K Bilder übereinanderlegen AWT, Swing, JavaFX & SWT 11
windl Querstreifen beim Bilder malen und anpassen an neue CPU AWT, Swing, JavaFX & SWT 12
V Fertige Komponente zum Anzeigen mehrerer Bilder AWT, Swing, JavaFX & SWT 5
Karuka 2D-Grafik Bilder in GridLayout einfügen AWT, Swing, JavaFX & SWT 7
J Bilder in ausführbare jar einbinden AWT, Swing, JavaFX & SWT 7
J Swing Bilder anzeigen in Gridlayout AWT, Swing, JavaFX & SWT 11
H 2D-Grafik Bilder laden ist nicht zuverlässig AWT, Swing, JavaFX & SWT 3
F Bilder ineinander kopieren AWT, Swing, JavaFX & SWT 3
P Bilder verkleinern AWT, Swing, JavaFX & SWT 2
C SWT Mehrere Bilder in GUI laden AWT, Swing, JavaFX & SWT 5
Furtano AWT Skalierung mehrerer Bilder / Histogramme im Fenster AWT, Swing, JavaFX & SWT 4
Furtano AWT mehrere Bilder in einen Frame zeichnen + Layout Manager AWT, Swing, JavaFX & SWT 10
T 2D-Grafik Statisches Hintergrundbild, dynamische Bilder drüber AWT, Swing, JavaFX & SWT 2
C Zwei Bilder übereinander legen AWT, Swing, JavaFX & SWT 1
L [SWT] Daten und Bilder drucken AWT, Swing, JavaFX & SWT 2
S Flickr Bilder in Gui Oberfläche AWT, Swing, JavaFX & SWT 21
L Bilder im JPanel als Hintergrund - Swing AWT, Swing, JavaFX & SWT 2
K Bilder nacheinander einfügen AWT, Swing, JavaFX & SWT 3
H Bilder auf Buttons per Klick tauschen ( Puzzle ) AWT, Swing, JavaFX & SWT 8
H Bilder in Array zufällig anordnen AWT, Swing, JavaFX & SWT 4
P 2D-Grafik Viele Bilder zu einem Video AWT, Swing, JavaFX & SWT 3
J Vergleicher zweier Bilder AWT, Swing, JavaFX & SWT 2
C zwei Bilder nacheinander anzeigen AWT, Swing, JavaFX & SWT 2
L Swing Bilder über andere Bilder laden AWT, Swing, JavaFX & SWT 3
J Bilder überlappen AWT, Swing, JavaFX & SWT 18
P Bilder werden nach Änderung nicht angezeigt AWT, Swing, JavaFX & SWT 15
3 2D-Grafik Rechtecke auf Bilder legen und auslesen AWT, Swing, JavaFX & SWT 4
M Mehrere Bilder auf einmal anzeigen AWT, Swing, JavaFX & SWT 9
P Swing html mit bilder drin AWT, Swing, JavaFX & SWT 12
F Nicht alle Bilder werden angezeigt AWT, Swing, JavaFX & SWT 2
E Bilder auf JFrame AWT, Swing, JavaFX & SWT 7
R Bilder über URL einfügen AWT, Swing, JavaFX & SWT 4
F Applet zeigt Bilder nicht an AWT, Swing, JavaFX & SWT 5
M FileChooser Bilder auswählen AWT, Swing, JavaFX & SWT 8
G Swing Bilder zeichnen AWT, Swing, JavaFX & SWT 28
L Swing Bilder im Icons-Ordner AWT, Swing, JavaFX & SWT 4
U Bilder in Jar werden nicht gefunden AWT, Swing, JavaFX & SWT 5
S SWT Canvas: Flackernde Bilder AWT, Swing, JavaFX & SWT 3
A Bilder vergleichen AWT, Swing, JavaFX & SWT 4
E Swing JTextPane Inhalt(Text und Bilder) als HTML text bekommen AWT, Swing, JavaFX & SWT 3
E AWT Bilder und Java AWT, Swing, JavaFX & SWT 11
P Bilder einfügen AWT, Swing, JavaFX & SWT 4
D Swing JEditorPane mit HTML aber ohne Bilder AWT, Swing, JavaFX & SWT 3
S Swing Kleine Bilder in Panel einfügen AWT, Swing, JavaFX & SWT 13
A AWT Bilder als Link verwenden? AWT, Swing, JavaFX & SWT 11
T SWT Wie Bilder aus JAR-Dateien einbinden? AWT, Swing, JavaFX & SWT 12
S Bilder aus der Google Book Search API auslesen AWT, Swing, JavaFX & SWT 3
J Bilder in JScrollPane zentrieren AWT, Swing, JavaFX & SWT 5
M Bilder in einem Textfeld darstellen AWT, Swing, JavaFX & SWT 2
N Bilder aus Infos generieren lassen. Welches Framework? AWT, Swing, JavaFX & SWT 8
A SWT Bilder resizen AWT, Swing, JavaFX & SWT 9
A Swing Bilder in JFrame einfügen AWT, Swing, JavaFX & SWT 2
Cloud Einige Bilder werden nicht geladen AWT, Swing, JavaFX & SWT 11

Ähnliche Java Themen

Neue Themen


Oben