Bitmap aus Datei erstellen

  • Themenstarter Themenstarter weired
  • Beginndatum Beginndatum
W

weired

Gast
Hallo,
ich habe eine Datei, wo ich neben einem verkleinerten Bitmap weitere Informationen drin speichere, man stelle sich den Aufbau wie folgt vor (Bitmap+metainfo+random things). Wenn ich nun die informationen aus der Datei extrahiere und das Bitmap mit
Java:
bmp = BitmapFactory.decodeByteArray(buffer, 0, buffer.length, null);
erstelle bekomme ich null zurück und nicht das gewünschte Bild. Wenn ich nur das Bitmap in der Datei speichere funktioniert es hingegen. Allerdings ist es notwendig, dass ich sowohl bmp als auch die anderen informationen in einer datei habe.
Weiß jemand warum ich dieses Problem bekomme und wie ich dieses umgehen kann?

Vielen Dank
 
Du musst die Daten des Bitmaps von allen anderen Daten trennen, bevor du es dekodierst. Schließlich kann der Dekodierungsalgorithmus ja nicht aus dem Nichts heraus wissen, dass du mehr als nur die Bitmap-Daten übergibst.
 
Ja, das habe ich auch gemacht. in dem buffer sollten im moment nur die daten für das bitmap drin stehen.
 
so ich habe jetzt nochmal einiges rumprobiert, und es scheint nicht daran zu liegen wie ich es raushole sondern wie man das Bitmap in die Datei reinschreibt.
Folgendes funkioniert:
Java:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
File f = new File(filename);
byte[] bu = baos.toByteArray();
fos.write(bu);
[\JAVA]
Wenn ich den Stream aber zwischendurch nochmal in einen String umwandele funktioniert es nicht mehr:
[code=Java]
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
File f = new File(filename);
byte[] bu = baos.toByteArray();
String sbu = new String(bu);
fos.write(bu.getBytes());
[\JAVA]
Läuft bei der Byte[]->String umwandlung irgendwas schief? Eigentlich sollte doch der Inhalt des byte[] einfach als String interpretiert werden......
 
so ich habe jetzt nochmal einiges rumprobiert, und es scheint nicht daran zu liegen wie ich es raushole sondern wie man das Bitmap in die Datei reinschreibt.
Folgendes funkioniert:
Java:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
File f = new File(filename);
byte[] bu = baos.toByteArray();
fos.write(bu);
Wenn ich den Stream aber zwischendurch nochmal in einen String umwandele funktioniert es nicht mehr:
Java:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
File f = new File(filename);
byte[] bu = baos.toByteArray();
String sbu = new String(bu);
fos.write(bu.getBytes());
Läuft bei der Byte[]->String umwandlung irgendwas schief? Eigentlich sollte doch der Inhalt des byte[] einfach als String interpretiert werden......
 
Hab' das jetzt nicht im Detail nachvollzogen (es klang so schräg :autsch: ) aber ein String und ein byte[] array sind NICHT einfach autatuschbar. Wenn man aus einem byte[] array einen String macht (oder umgekehrt) kommen da viele ""Unwägbarkeiten"" dazu, wie Encodings und Charsets (für eine Konvertierung von/in Unicode und so). Wenn du byte[]-Daten hast, speichere sie als byte[], und nicht als String.
 

Neue Themen


Zurück
Oben