Android Bild in Datenbank speichern

A

AndrejT

Neues Mitglied
5
Hallo zusammen

Ich arbeite immernoch an einem Schulprojekt und diesmal benötige ich eure Hilfe beim diesem folgenden Schritt:

Ich möchte das man in dieser Applikation ein Bild aus der Gallery auswählen kann und dieses Bild wird in meine mongodb über die restheart api hochgeladen.

Das ausgewählte Bild muss also in Binary convertiert werden und somit wird die Binary über die restheart api in die db geschrieben.

Das sollte so funktionieren das am anderen Ende ein Endgerät das Bild aus der Datenbank lesen kann bzw. es ihm angezeigt wird.

Die Verbindung zur Datenbank klappt und habe alles hingekriegt.

Nun die frage, wie kann ich das ausgewählte Bild in Binary convertieren und das in einen String parsen damit ich das in die DB schreiben kann?

Falls das was ich hier verlange auf Android gar nicht möglich ist, wäre ich froh wenn mich jemand darüber dann informiert. Auf ratschläge und informationen aller Art, wäre ich euch sehr dankbar.

:thumbsup:
 
Bitmap deinFoto;
ByteArrayOutputStream stream = new ByteArrayOutputStream();
deinFoto.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();

und dann das auslesen vorher bytearray mit inoutstream aus der datenbank füttern

Bitmap bMap = null;

bMap = BitmapFactory.decodeByteArray(byteArray,0,byteArray.length);
 
wobei man anmerken sollte dss die Datenbank idr . nicht der paasende ort ist um Bilder zu speichern ;)

lg.
 
ja das wollte ich auch schon posten...bilder und sounds allgemein multimedia dateien fühlen sich in richtigen files viel wohler!!!
 
wo sollte man dann bilder abspeichern wenn man eine app erstellen will wo man von gerät zu gerät bilder schicken kann?

das mit bitmap verstehe ich nciht ganz.

Da man ja ein bild aus der gallery auswählen kann wird das bild als Intent gespeichert oder verstehe ich da was falsch? deshalb kann ich es ja gar nicht als bitmap speichern?
 
Auf dem Server in einer Datei.

cu
 
ich verstehe es immernoch nicht ganz.

also ich habe es so geplant

Bild auswählen
Bild in eine Bitmap speichern
aus der Bitmap bytes machen, bytes als string in die mongodb speichern

und beim auslesen, den ganzen prozess nochmals einfach rückwerts...
bytes auslesen, in eine bitmap parsen, biild anzeigen... würde das so gehen?
 
Im Prinzip ginge das schon, aber zwischen bytes und chars steht die Encoding Frage und ich spreche da aus Erfahrung, dass das ein Brunnen steter Bugs ist (DB/System ändert bei Update default Encoding, nicht jede bytefolge entspricht einer legalen UTF8 Zeichenkette, ...)
 
aber bei einem internal storage bleiben doch die daten intern im gerät... woher sollte das andere gerät 2 das ausgewählte foto vom gerät 1 erhalten? das foto muss also hochgeladen werden...
 
Zum Hochladen musst du natürlich was anderes als Internal Storage nehmen (zum lokalen anzeigen brauchst du das aber trotzdem, oder willst du bei jedem redraw dein Bild neu runterladen? :D).

Wenn du eine API zum Hochladen nutzt, musst du gucken, was die so bietet. Wirklich sicher ist vmtl dann nur so etwas wie base64 codierung.
 

Ähnliche Themen

B
Antworten
6
Aufrufe
1.051
jogimuc
J
S
Antworten
33
Aufrufe
2.676
Sempervivum
S
D
Antworten
23
Aufrufe
2.563
Data2006
D
Zurück
Oben Unten