Display image in base64-String in html?
hier ist mein java-code, konstruieren die base64-Zeichenfolge aus dem Bild. Dann legen Sie den base64-String in html, anzeigen
das konstruierte Bild, aber Bild ist nicht konstruiert irgendwie
public void getBase64String() throws FileNotFoundException {
FileInputStream itStrm = new FileInputStream(
"E:\\image\\56255254-flower.jpg");//image is lying at http://danny.oz.au/travel/mongolia/p/56255254-flower.jpg
String str = itStrm.toString();
byte[] b3 = str.getBytes();
String base64String = new sun.misc.BASE64Encoder().encode(b3);
//output of base64String is amF2YS5pby5GaWxlSW5wdXRTdHJlYW1AMTdlMDYwMA==
}
Jetzt in der html-Seite, die ich gelegt die Ausgabe von base64String im img-tag um das Bild anzuzeigen.Aber Bild nicht auftaucht
(anstatt es anzuzeigen, das Kreuz-Bild-Symbol). Ich bin nicht immer Bild wird nicht angezeigt von base64-String unten?
<HTML>
<BODY>
<img src="data:image/jpeg;base64,amF2YS5pby5GaWxlSW5wdXRTdHJlYW1AMTdlMDYwMA=="/>
</BODY>
</HTML>
EDIT:- vielen Dank Leute, ich verwendet, byte[] bytes = IOUtils.toByteArray ();. Bei mir hat es geklappt!!
Das ist eine furchtbar kleine Reihe für so ein riesiges Bild.
Blenedr, Ist Base64String ist nicht richtig gebaut?
Ich habe eine wall of text. Die base64-Darstellung sollte mehr Platz einnehmen als das eigentliche Bild.
Auch könnten Sie besser dran, unter Verwendung der apache commons Bibliothek.commons.apache.org/codec/apidocs/org/apache/commons/codec/...
Blenedr, Ist Base64String ist nicht richtig gebaut?
Ich habe eine wall of text. Die base64-Darstellung sollte mehr Platz einnehmen als das eigentliche Bild.
Auch könnten Sie besser dran, unter Verwendung der apache commons Bibliothek.commons.apache.org/codec/apidocs/org/apache/commons/codec/...
String base64String = new sun.misc.BASE64Encoder().encode(b3);
Blick auf DatatypeConverter
in einem modernen JRE, und die Methoden zentriert um Base64
.InformationsquelleAutor M Sach | 2012-10-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
:
String str = itStrm.toString()
Ist nicht das Bild, sondern dastoString()
Darstellung derFileInputStream
Instanz.Haben Sie zum Lesen der bytes aus dem stream und speichert Sie in einem byte-array. Und aus performance-Gründen -, Puffer-stream:
Weiter Lesen (Spoiler: Lösung inside)
Gut zu hören, dass es nun funktioniert. Bitte einen neuen Eintrag machen für die andere Frage 🙂
InformationsquelleAutor Andreas_D
Müssten Sie die
read()
Methode derFileInputStream
- Instanz anstelle dertoString()
auf, um den Inhalt des Bildes. Dann sind Sie in der Lage, codieren und es sollte funktionieren wie erwartet.Etwas wie:
InformationsquelleAutor dasheddot