# Icon in Datenbank speichern



## Benne (28. Aug 2007)

Hallo!
Ich habe schon einige Beispiele gefunden wie man Bilder in einer DAtenbank speichern kann. Allerdings ist bei den Beispielen immer der Pfad bekannt. Ich will die Bilder allerdings aus einem Programm auslesen wo diese direkt im Programm gespeichert sind. Das Objekt bietet eine Funktion .getIcon(). Nun suche ich ein weg wie ich dieses Icon direkt in einer SQLite Datenbank speichern kann. 
Wäre toll wenn mir jemand helfen könnte.
Bis denne
Benne


----------



## wayne (29. Aug 2007)

weiß jetz net ob das der ideal weg wäre, aber funktionieren müsste das:

du kannst die icons meins wissens nicht in einem BLOB-feld der DB speichern, sondern wirst sie höchstwarscheinlich als längere zeichenkette reinschreiben müssen. um dies zu bewerkstelligen würde ich zunächst mir einen weg suchen, aus meinem Icon ein BufferedImage zu erzeugen (beispielsweise durch draufzeichnen). dieses kannst du dann, beispielsweise per JpegImageEncoder in einen Stream schreiben lassen, beispielsweise in einen ByteArrayOutputStream. letzteres kannst du wiederum dir als byte[] geben lassen, per toByteArray(). das wandelst du in eine lange zeichenkette, also einen String und diesen kannst du dann in deine datenbank abspeichern.

rückzu genau so. du liest die zeichnkette, die das icon darstellt, decodierst diese beispielsweise mit JpegImageDecoder und erhältst ein BufferedImage. daraus machst du dann ein neues ImageIcon und hast dein in der datenbank gespeichertes Icon.

ich hoffe, ich konnte dir helfen

viel glück

wayne


----------



## Benne (29. Aug 2007)

puh - ok danke schon mal. Dann werde ich mal gucken ob ich das hin bekomme.


----------



## HoaX (29. Aug 2007)

a) muss es denn unbedingt sqlite sein? iiiih
b) waynes weg ist umständlich. du kannst dein bild auch ohne zwischenkonvertierung aus einem fileinputsream in einen bytearrayoutputstream kopieren und den dann z.B. base64 encoden. aber wenn man eine vernünftige datenbank nimmt, dann benutzt man einfach ein blob und gut ists.


----------



## Benne (30. Aug 2007)

ja es muss unbedingt sqlite sein, denn eingelesen wird die DAtei dann auf einem PocketPC mit C#. Befürchte das erschwert das ganze nochmal gewaltig...
SQLIte bietet doch auch BLOB


----------

