1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

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

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von AquaBall, 17.04.2012.

  1. AquaBall, 17.04.2012 #1
    AquaBall

    AquaBall Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    121
    Erhaltene Danke:
    2
    Registriert seit:
    29.02.2012
    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?
     
  2. DieGoldeneMitte, 17.04.2012 #2
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    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: 17.04.2012
  3. AquaBall, 18.04.2012 #3
    AquaBall

    AquaBall Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    121
    Erhaltene Danke:
    2
    Registriert seit:
    29.02.2012
    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.
     
  4. Fr4gg0r, 18.04.2012 #4
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    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.
     

Diese Seite empfehlen