Image (Bitmap) in String (für XML)

A

AquaBall

Fortgeschrittenes Mitglied
2
Ich lade ein Bild aus dem Internet, das ich wunderbar anzeigen kann.
Nur speichern in einem XML gelingt mir nicht, weil ich es nicht 'encoden' kann.

Code:
Bitmap bitmap = BitmapFactory.decodeStream(
                          ([URL="http://www.google.de/search?btnI&q=site:docs.oracle.com/javase/7/docs/api/%20inurl:inputstream"]InputStream[/URL])new [URL="http://www.google.de/search?btnI&q=site:docs.oracle.com/javase/7/docs/api/%20inurl:url"]URL[/URL](imageUrl).getContent());

[URL="http://www.google.de/search?btnI&q=site:docs.oracle.com/javase/7/docs/api/%20inurl:bytearrayoutputstream"]ByteArrayOutputStream[/URL] bStream = new [URL="http://www.google.de/search?btnI&q=site:docs.oracle.com/javase/7/docs/api/%20inurl:bytearrayoutputstream"]ByteArrayOutputStream[/URL]();
[URL="http://www.google.de/search?btnI&q=site:docs.oracle.com/javase/7/docs/api/%20inurl:objectoutputstream"]ObjectOutputStream[/URL] oStream = new [URL="http://www.google.de/search?btnI&q=site:docs.oracle.com/javase/7/docs/api/%20inurl:objectoutputstream"]ObjectOutputStream[/URL]( bStream );
oStream.writeObject ( bitmap );

bildString = Base64.encodeToString(bStream.toByteArray(),Base64.DEFAULT);
scheitert an: java.io.NotSerializableException: android.graphics.Bitmap

Wie kann ich ein Bitmap in einen druckbaren String umwandeln?
 
1.) Base64Codierung ist nicht XML. :D
2.) Eine Bitmap ist ein Haufen Pixel und kein "Bildspeicherformat".
3.) Wenn du eine Bitmap in eine Bytefolge verwandeln willst, musst du das Bild in ein Bildformat konvertieren (JPEG, GIF, PNG,... Viele Parameter wollen eingestellt sein: Kompression, Bittiefe, Lossiness, etc...) Dafür braucht man einen Konverter.

Die in Java dafür normalerweise benutzte paket ist javax.imageio.*, das ist leider bei Android nicht dabei.

Am einfachsten ist es wohl, den Bytestrom beim Einlesen abzufangen.
 
Zuletzt bearbeitet:
1) ist mir klar, aber um einen "Haufen Pixel" nach XML zu bringen muss ich wohl encoden (z.B. mit Basa64) um nicht SteuerCodes drin zu haben oder nicht?

2) dieser Haufen repräsentiert aber ein darstellbares Bild. Kann ich direkt als Image darstellen. (Siehe Post: Ich HABE ein Bild im Bitmap)

3) Der Haufen Pixel kann wohl völlig unabhängig vom Inhalt in einen Haufen Byte umgewandelt werden. (und identisch zurück)

Das wäre meine Frage gewesen. Aber ich hab sie wohl falsch gestellt.
 
AquaBall schrieb:
3) Der Haufen Pixel kann wohl völlig unabhängig vom Inhalt in einen Haufen Byte umgewandelt werden. (und identisch zurück)

Genau das musst du tun. Einfach nach "android get bytes from bitmap" oder ähnlichem suchen. Das byte array kannste dann encoden wie du lustig bist und anschließend in ein xml formatiertest dokument schmeißen.
 

Ähnliche Themen

netfreak
  • netfreak
Antworten
10
Aufrufe
437
netfreak
netfreak
D
Antworten
23
Aufrufe
2.383
Data2006
D
5
Antworten
0
Aufrufe
1.116
586920
5
Zurück
Oben Unten