PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : BufferedImage -> byte[] | Persistieren von BufferdImage



kegmeon
07-05-2008, 08:42
Hallo liebe Leute,

ich versuche gerade eine Bild (jpg, geladen in ein BufferedImage Objekt) via Hibernate (mit Annotions) in eine Datenbank zu laden.

Wenn ich es mit dem BufferedImage selbst probiere, bekomme ich eine ClassCastException:

java.lang.ClassCastException: java.awt.image.BufferedImage cannot be cast to java.sql.Blob

Mir war dann klar, dass das Bild entweder aus bytes bestehen muss, oder der Typ Serializeable implementieren muss. Da Lösung mit den bytes spricht mich aber deutlich mehr an.

Nur habe ich leider keine Ahnung, wie ich von BufferedImage zu einem byte-Array komme...

Hat wer eine Idee?

mfg
kegmeon

anda_skoa
07-05-2008, 14:18
Siehe ImageIO
http://java.sun.com/javase/6/docs/api/javax/imageio/ImageIO.html

und ByteArrayOutputStream
http://java.sun.com/javase/6/docs/api/java/io/ByteArrayOutputStream.html

Ciao,
_

panzi
10-05-2008, 20:35
Eventuell ist da ein UserType der zwischen java.awt.image.BufferedImage und java.sql.Blob mappt die richtige Lösung? Bin mir aber nicht ganz sicher, zumal unser Prof. gesagt hat einen UserType verwendet man nur wenn *wirklich* nichts anderes geht. Einfach das interface org.hibernate.usertype.UserType implementieren und dann das betreffende Feld mit @Type(type="foo.bar.DeinUserType") annotieren. Google mal. Dazu findet sich genug.

Hier ist meine Lösung einer Hausübung in welcher wir u.a. einen UserType zu implementieren hatten:
http://twoday.tuwien.ac.at/pub/files/tvs2_0427417_java

Hier die Angabe:
Hmm, ich seh grad die bekommt man nur mit Logininformation die uns in der Vorlesung gesagt wurden. Die geb ich besser nicht weiter.