Bitmap - ImageView

  • Antworten:19
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 282

16.05.2014, 19:44:24 via Website

Hallo Leute,

ich habe eine kleine App, die einen Base64-String von einer Datenbank ladet und in einer ImageView darstellt.

Das ganze funktioniert auch schon, aber leider nur mit .PNG-Dateien, bei .JPEG/.JPG zeigt die ImageView weiß an.

Code von meinem C#-Programm, dass das Bild in der Datenbank speichert.

imagestring = Convert.ToBase64String(File.ReadAllBytes(dlg.FileName));

In meiner Android-App konventiere ich dann wie folgt den String in eine Bitmap.

byte[] decodedString = Base64.decode(encodedString,
                    Base64.DEFAULT);
            Bitmap bitmap = BitmapFactory.decodeByteArray(decodedString, 0,
                    decodedString.length);
imgView.setImageBitmap(bitmap);

Hoffe, ihr könnt mir helfen!

LG Jakob

LG Jakob

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.165

16.05.2014, 19:58:35 via Website

kannst du nicht noch angeben, welches Format das bild hat?
Das ist ja eigentlich wichtig.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 282

16.05.2014, 22:24:21 via Website

Leider weiß ich nicht wie das funktioniert, außerdem möchte ich das PNG und JPG funktioniert!

LG

LG Jakob

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.165

17.05.2014, 07:51:10 via Website

Wieso machst du die Bilder in der DB nicht einheitlich.
Dein Write Programm könnte das Bild doch vor dem schreiben in die DB konvertieren.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.165

17.05.2014, 13:10:48 via Website

Ja sowas in der Art. Erst das Bild in png Format umwandeln und dann erst als Base64 in der DB speichern
So umgehst du zwar das Problem, aber ich glaube, es sollte so wie du es hattest auch gehen, aber keine Ahnug warum.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 282

17.05.2014, 17:23:04 via Website

Weißt du zufällig wie ich das Bild in C# konvertieren kann?

Oder vielleicht in Android? Da ich sowieso vor habe, diese Funktion (Bild hochladen) in meiner Android-App zu implementieren.

LG Jakob

LG Jakob

Antworten
  • Forum-Beiträge: 282

18.05.2014, 15:33:18 via Website

Anfangs wollte ich BLOB verwenden, habe aber eine MySQL-Datenbank und ich kenne keine andere Möglichkeit als die Datenbankabfrage als JSON-Array auszugeben und mit JAVA einlesen. Das ganze hat mit BLOB nicht wirklich hingehauen!

LG Jakob

LG Jakob

Antworten
  • Forum-Beiträge: 282

10.06.2014, 22:37:13 via Website

Hallo!

Ich hoffe mir kann irgendwer weiter helfen ...
Bin schon am verzweifeln mit dieser Bitmap ...

Habe jetzt meine JPG-Bilder einfach in PNG mittels Paint konvertiert... Die ImageView zeigt trotzdem nichts an.

Irgendwer eine Idee? Bitte helft mir!

LG Jakob

LG Jakob

Antworten
  • Forum-Beiträge: 282

11.06.2014, 06:44:22 via Website

Du glaubst also das irgendein Bit beim Speichern verloren geht? .. Lese das Bild mit C# ein und speicher es in die db.

LG Jakob

LG Jakob

Antworten
  • Forum-Beiträge: 76

11.06.2014, 21:16:04 via App

Verloren geht nichts aber c# geht mit bytes anders um als Java wenn man das so sagen kann..
Bedeutet Java interpretiert das bytearray, das aus c# kommt, anders als erwartet.
ich bin mir nicht sicher ob das mit biginteger funktioniert aber probiers mal aus.

new BigInteger(1,bytes).toByteArray();

Antworten
  • Forum-Beiträge: 222

12.06.2014, 00:32:38 via Website

Hi,
leider muss ich raus!
Aber Du hast viele (VERMUTE) mit

... In meiner Android-App konventiere ich dann wie folgt den String
in eine Bitmap.

verwirt.
Weiterhin hat keiner darauf geachtet.
wie gesagt - muss raus.

LG
Georg

Ps.
Aber vieleicht - keien Ahnung

Sorry für Gramatik & Stilistik Fehler.

Antworten
  • Forum-Beiträge: 282

12.06.2014, 06:41:41 via Website

Hallo Georg!

Was meinst du genau mit muss raus? Das verstehe ich nicht!

LG Jakob

LG Jakob

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.165

12.06.2014, 10:23:00 via Website

Ist vielleicht die Bytekodierung anders?
Zb. LittleEndian und BigEndian?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 282

12.06.2014, 15:50:35 via Website

Hallo!

Das mit BigInteger hab ich in C# irgendwie nicht hinbekommen ...

Wie kann ich nachschauen ob es Little- oder BigEndian ist?

LG Jakob

LG Jakob

Antworten
  • Forum-Beiträge: 76

12.06.2014, 19:33:15 via App

das mit biginteger sollst du ja in Java machen:)

— geändert am 12.06.2014, 19:34:23

Antworten
  • Forum-Beiträge: 222

12.06.2014, 21:24:52 via Website

Hi,
manchmal wirkt:

byte[] bytes = new byte[1024]; -> [xxx]
also - bei Dir
byte[] decodedString = new byte[1024]; -> [xxx]

wunder
Sonnst keine Ahnung - sorry.

Sorry für Gramatik & Stilistik Fehler.

Antworten
  • Forum-Beiträge: 282

29.06.2014, 12:47:18 via Website

Hallo Leute :)

Danke nochmals für eure Hilfen!

Habe jetzt jedoch meine App etwas umgebaut und lade die Bilder auf einen SSH-Server und hole sie mir dann mit einem Async-Task und folgenden Code als Bitmap:

URL newurl = new URL(urlstring);
Bitmap img = BitmapFactory.decodeStream(newurl.openConnection()
                    .getInputStream());

LG Jakob

LG Jakob

Antworten

Empfohlene Artikel