byte-Array, das ein Bild repräsentiert

krgewb

Top Contributor
Ich habe ein byte-Array von einem String in Base64. Ich bekomme die URL, indem ich folgendes ausführe:
Java:
String url = "data:image/jpeg;base64," + new String(byteArray, StandardCharsets.UTF_8);
Das funktioniert auch schon sehr gut.

Im anderen Fall habe ich aber das Bild an sich als byte-Array. Bisher mache ich es wie folgt:
Java:
String stringWithBits = ByteHelper.getBitsByByteArray(byteArray);
String s = Functions.getCharacters(stringWithBits);
String url = "data:image/jpeg;base64," + Functions.btoa(s);
Weiß jemand, ob das optimiert werden kann?

Hinweise:

- Functions.btoa() ruft die btoa-Funktion von Vanilla Javascript auf.

- Die getBitsByByteArray():

Java:
  public static String getBitsByByteArray(byte[] byteArray) {

        if (map4 == null) {
            map4 = new HashMap<>();
            map4.put((byte) 0x00, "00000000");
            map4.put((byte) 0x01, "00000001");
            map4.put((byte) 0x02, "00000010");
            map4.put((byte) 0x03, "00000011");
            map4.put((byte) 0x04, "00000100");
            map4.put((byte) 0x05, "00000101");
            map4.put((byte) 0x06, "00000110");
            map4.put((byte) 0x07, "00000111");
            map4.put((byte) 0x08, "00001000");
            map4.put((byte) 0x09, "00001001");
            map4.put((byte) 0x0A, "00001010");
            map4.put((byte) 0x0B, "00001011");
            map4.put((byte) 0x0C, "00001100");
            map4.put((byte) 0x0D, "00001101");
            map4.put((byte) 0x0E, "00001110");
            map4.put((byte) 0x0F, "00001111");
            map4.put((byte) 0x10, "00010000");
            map4.put((byte) 0x11, "00010001");
            map4.put((byte) 0x12, "00010010");
            map4.put((byte) 0x13, "00010011");
            map4.put((byte) 0x14, "00010100");
            map4.put((byte) 0x15, "00010101");
            map4.put((byte) 0x16, "00010110");
            map4.put((byte) 0x17, "00010111");
            map4.put((byte) 0x18, "00011000");
            map4.put((byte) 0x19, "00011001");
            map4.put((byte) 0x1A, "00011010");
            map4.put((byte) 0x1B, "00011011");
            map4.put((byte) 0x1C, "00011100");
            map4.put((byte) 0x1D, "00011101");
            map4.put((byte) 0x1E, "00011110");
            map4.put((byte) 0x1F, "00011111");
            map4.put((byte) 0x20, "00100000");
            map4.put((byte) 0x21, "00100001");
            map4.put((byte) 0x22, "00100010");
            map4.put((byte) 0x23, "00100011");
            map4.put((byte) 0x24, "00100100");
            map4.put((byte) 0x25, "00100101");
            map4.put((byte) 0x26, "00100110");
            map4.put((byte) 0x27, "00100111");
            map4.put((byte) 0x28, "00101000");
            map4.put((byte) 0x29, "00101001");
            map4.put((byte) 0x2A, "00101010");
            map4.put((byte) 0x2B, "00101011");
            map4.put((byte) 0x2C, "00101100");
            map4.put((byte) 0x2D, "00101101");
            map4.put((byte) 0x2E, "00101110");
            map4.put((byte) 0x2F, "00101111");
            map4.put((byte) 0x30, "00110000");
            map4.put((byte) 0x31, "00110001");
            map4.put((byte) 0x32, "00110010");
            map4.put((byte) 0x33, "00110011");
            map4.put((byte) 0x34, "00110100");
            map4.put((byte) 0x35, "00110101");
            map4.put((byte) 0x36, "00110110");
            map4.put((byte) 0x37, "00110111");
            map4.put((byte) 0x38, "00111000");
            map4.put((byte) 0x39, "00111001");
            map4.put((byte) 0x3A, "00111010");
            map4.put((byte) 0x3B, "00111011");
            map4.put((byte) 0x3C, "00111100");
            map4.put((byte) 0x3D, "00111101");
            map4.put((byte) 0x3E, "00111110");
            map4.put((byte) 0x3F, "00111111");
            map4.put((byte) 0x40, "01000000");
            map4.put((byte) 0x41, "01000001");
            map4.put((byte) 0x42, "01000010");
            map4.put((byte) 0x43, "01000011");
            map4.put((byte) 0x44, "01000100");
            map4.put((byte) 0x45, "01000101");
            map4.put((byte) 0x46, "01000110");
            map4.put((byte) 0x47, "01000111");
            map4.put((byte) 0x48, "01001000");
            map4.put((byte) 0x49, "01001001");
            map4.put((byte) 0x4A, "01001010");
            map4.put((byte) 0x4B, "01001011");
            map4.put((byte) 0x4C, "01001100");
            map4.put((byte) 0x4D, "01001101");
            map4.put((byte) 0x4E, "01001110");
            map4.put((byte) 0x4F, "01001111");
            map4.put((byte) 0x50, "01010000");
            map4.put((byte) 0x51, "01010001");
            map4.put((byte) 0x52, "01010010");
            map4.put((byte) 0x53, "01010011");
            map4.put((byte) 0x54, "01010100");
            map4.put((byte) 0x55, "01010101");
            map4.put((byte) 0x56, "01010110");
            map4.put((byte) 0x57, "01010111");
            map4.put((byte) 0x58, "01011000");
            map4.put((byte) 0x59, "01011001");
            map4.put((byte) 0x5A, "01011010");
            map4.put((byte) 0x5B, "01011011");
            map4.put((byte) 0x5C, "01011100");
            map4.put((byte) 0x5D, "01011101");
            map4.put((byte) 0x5E, "01011110");
            map4.put((byte) 0x5F, "01011111");
            map4.put((byte) 0x60, "01100000");
            map4.put((byte) 0x61, "01100001");
            map4.put((byte) 0x62, "01100010");
            map4.put((byte) 0x63, "01100011");
            map4.put((byte) 0x64, "01100100");
            map4.put((byte) 0x65, "01100101");
            map4.put((byte) 0x66, "01100110");
            map4.put((byte) 0x67, "01100111");
            map4.put((byte) 0x68, "01101000");
            map4.put((byte) 0x69, "01101001");
            map4.put((byte) 0x6A, "01101010");
            map4.put((byte) 0x6B, "01101011");
            map4.put((byte) 0x6C, "01101100");
            map4.put((byte) 0x6D, "01101101");
            map4.put((byte) 0x6E, "01101110");
            map4.put((byte) 0x6F, "01101111");
            map4.put((byte) 0x70, "01110000");
            map4.put((byte) 0x71, "01110001");
            map4.put((byte) 0x72, "01110010");
            map4.put((byte) 0x73, "01110011");
            map4.put((byte) 0x74, "01110100");
            map4.put((byte) 0x75, "01110101");
            map4.put((byte) 0x76, "01110110");
            map4.put((byte) 0x77, "01110111");
            map4.put((byte) 0x78, "01111000");
            map4.put((byte) 0x79, "01111001");
            map4.put((byte) 0x7A, "01111010");
            map4.put((byte) 0x7B, "01111011");
            map4.put((byte) 0x7C, "01111100");
            map4.put((byte) 0x7D, "01111101");
            map4.put((byte) 0x7E, "01111110");
            map4.put((byte) 0x7F, "01111111");
            map4.put((byte) 0x80, "10000000");
            map4.put((byte) 0x81, "10000001");
            map4.put((byte) 0x82, "10000010");
            map4.put((byte) 0x83, "10000011");
            map4.put((byte) 0x84, "10000100");
            map4.put((byte) 0x85, "10000101");
            map4.put((byte) 0x86, "10000110");
            map4.put((byte) 0x87, "10000111");
            map4.put((byte) 0x88, "10001000");
            map4.put((byte) 0x89, "10001001");
            map4.put((byte) 0x8A, "10001010");
            map4.put((byte) 0x8B, "10001011");
            map4.put((byte) 0x8C, "10001100");
            map4.put((byte) 0x8D, "10001101");
            map4.put((byte) 0x8E, "10001110");
            map4.put((byte) 0x8F, "10001111");
            map4.put((byte) 0x90, "10010000");
            map4.put((byte) 0x91, "10010001");
            map4.put((byte) 0x92, "10010010");
            map4.put((byte) 0x93, "10010011");
            map4.put((byte) 0x94, "10010100");
            map4.put((byte) 0x95, "10010101");
            map4.put((byte) 0x96, "10010110");
            map4.put((byte) 0x97, "10010111");
            map4.put((byte) 0x98, "10011000");
            map4.put((byte) 0x99, "10011001");
            map4.put((byte) 0x9A, "10011010");
            map4.put((byte) 0x9B, "10011011");
            map4.put((byte) 0x9C, "10011100");
            map4.put((byte) 0x9D, "10011101");
            map4.put((byte) 0x9E, "10011110");
            map4.put((byte) 0x9F, "10011111");
            map4.put((byte) 0xA0, "10100000");
            map4.put((byte) 0xA1, "10100001");
            map4.put((byte) 0xA2, "10100010");
            map4.put((byte) 0xA3, "10100011");
            map4.put((byte) 0xA4, "10100100");
            map4.put((byte) 0xA5, "10100101");
            map4.put((byte) 0xA6, "10100110");
            map4.put((byte) 0xA7, "10100111");
            map4.put((byte) 0xA8, "10101000");
            map4.put((byte) 0xA9, "10101001");
            map4.put((byte) 0xAA, "10101010");
            map4.put((byte) 0xAB, "10101011");
            map4.put((byte) 0xAC, "10101100");
            map4.put((byte) 0xAD, "10101101");
            map4.put((byte) 0xAE, "10101110");
            map4.put((byte) 0xAF, "10101111");
            map4.put((byte) 0xB0, "10110000");
            map4.put((byte) 0xB1, "10110001");
            map4.put((byte) 0xB2, "10110010");
            map4.put((byte) 0xB3, "10110011");
            map4.put((byte) 0xB4, "10110100");
            map4.put((byte) 0xB5, "10110101");
            map4.put((byte) 0xB6, "10110110");
            map4.put((byte) 0xB7, "10110111");
            map4.put((byte) 0xB8, "10111000");
            map4.put((byte) 0xB9, "10111001");
            map4.put((byte) 0xBA, "10111010");
            map4.put((byte) 0xBB, "10111011");
            map4.put((byte) 0xBC, "10111100");
            map4.put((byte) 0xBD, "10111101");
            map4.put((byte) 0xBE, "10111110");
            map4.put((byte) 0xBF, "10111111");
            map4.put((byte) 0xC0, "11000000");
            map4.put((byte) 0xC1, "11000001");
            map4.put((byte) 0xC2, "11000010");
            map4.put((byte) 0xC3, "11000011");
            map4.put((byte) 0xC4, "11000100");
            map4.put((byte) 0xC5, "11000101");
            map4.put((byte) 0xC6, "11000110");
            map4.put((byte) 0xC7, "11000111");
            map4.put((byte) 0xC8, "11001000");
            map4.put((byte) 0xC9, "11001001");
            map4.put((byte) 0xCA, "11001010");
            map4.put((byte) 0xCB, "11001011");
            map4.put((byte) 0xCC, "11001100");
            map4.put((byte) 0xCD, "11001101");
            map4.put((byte) 0xCE, "11001110");
            map4.put((byte) 0xCF, "11001111");
            map4.put((byte) 0xD0, "11010000");
            map4.put((byte) 0xD1, "11010001");
            map4.put((byte) 0xD2, "11010010");
            map4.put((byte) 0xD3, "11010011");
            map4.put((byte) 0xD4, "11010100");
            map4.put((byte) 0xD5, "11010101");
            map4.put((byte) 0xD6, "11010110");
            map4.put((byte) 0xD7, "11010111");
            map4.put((byte) 0xD8, "11011000");
            map4.put((byte) 0xD9, "11011001");
            map4.put((byte) 0xDA, "11011010");
            map4.put((byte) 0xDB, "11011011");
            map4.put((byte) 0xDC, "11011100");
            map4.put((byte) 0xDD, "11011101");
            map4.put((byte) 0xDE, "11011110");
            map4.put((byte) 0xDF, "11011111");
            map4.put((byte) 0xE0, "11100000");
            map4.put((byte) 0xE1, "11100001");
            map4.put((byte) 0xE2, "11100010");
            map4.put((byte) 0xE3, "11100011");
            map4.put((byte) 0xE4, "11100100");
            map4.put((byte) 0xE5, "11100101");
            map4.put((byte) 0xE6, "11100110");
            map4.put((byte) 0xE7, "11100111");
            map4.put((byte) 0xE8, "11101000");
            map4.put((byte) 0xE9, "11101001");
            map4.put((byte) 0xEA, "11101010");
            map4.put((byte) 0xEB, "11101011");
            map4.put((byte) 0xEC, "11101100");
            map4.put((byte) 0xED, "11101101");
            map4.put((byte) 0xEE, "11101110");
            map4.put((byte) 0xEF, "11101111");
            map4.put((byte) 0xF0, "11110000");
            map4.put((byte) 0xF1, "11110001");
            map4.put((byte) 0xF2, "11110010");
            map4.put((byte) 0xF3, "11110011");
            map4.put((byte) 0xF4, "11110100");
            map4.put((byte) 0xF5, "11110101");
            map4.put((byte) 0xF6, "11110110");
            map4.put((byte) 0xF7, "11110111");
            map4.put((byte) 0xF8, "11111000");
            map4.put((byte) 0xF9, "11111001");
            map4.put((byte) 0xFA, "11111010");
            map4.put((byte) 0xFB, "11111011");
            map4.put((byte) 0xFC, "11111100");
            map4.put((byte) 0xFD, "11111101");
            map4.put((byte) 0xFE, "11111110");
            map4.put((byte) 0xFF, "11111111");
        }

        StringBuilder sb = new StringBuilder();

        for (byte b : byteArray) {
            sb.append(map4.get(b));
        }

        return sb.toString();
    }

- Die getCharacters():

Java:
    public static String getCharacters(String bits) {
        StringBuilder s = new StringBuilder();
        for (int i = 0; i < bits.length() / 8; i++) {
            int value = Integer.parseInt(bits.substring(8 * i, (i + 1) * 8), 2);
            s.append((char) (value));
        }
        return s.toString();
    }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G ImageIcon in Byte-Array ablegen Java Basics - Anfänger-Themen 7
S Byte-Array kann chars speichern? Java Basics - Anfänger-Themen 3
N Datentypen Image zu Byte-Array Java Basics - Anfänger-Themen 4
D Methoden int to byte array und zurück? Java Basics - Anfänger-Themen 5
F Byte Array wachsen lassen Java Basics - Anfänger-Themen 5
F Teil eines Byte Array an eine Methode übergeben Java Basics - Anfänger-Themen 5
M sehr großes Byte Array Java Basics - Anfänger-Themen 3
M Byte Array und Co. Java Basics - Anfänger-Themen 12
F Hexfolge in Byte Array ersetzen Java Basics - Anfänger-Themen 8
H Variablen 32bit Zählwert als Byte-Array Java Basics - Anfänger-Themen 9
M byte Array Mindestlänge Java Basics - Anfänger-Themen 19
D [jni] jbytearray <-> byte array Java Basics - Anfänger-Themen 8
P byte Array aus ImageIcon Java Basics - Anfänger-Themen 10
V Jar-Datei von Byte-Array oder Stream laden? Java Basics - Anfänger-Themen 9
H Datentypen Byte-Array RSA Java Basics - Anfänger-Themen 9
H Datentypen Rechnen mit signed Byte-Array - unsinged byte Java Basics - Anfänger-Themen 3
M Byte Array: Werte größer 127? Java Basics - Anfänger-Themen 11
H Datentypen Byte-Array aus Stream lesen Java Basics - Anfänger-Themen 3
S Unbekannte Daten einlesen, speichern und in einem byte Array speichern Java Basics - Anfänger-Themen 3
S Alle Datentypen in byte Array und zurückwandeln Java Basics - Anfänger-Themen 2
J Byte-Array als Hex-Datei speichern? Java Basics - Anfänger-Themen 9
J String array to byte array Java Basics - Anfänger-Themen 8
G SHA (byte array) per modulo hashen Java Basics - Anfänger-Themen 6
K Byte-Array als Zeichenfolge ausgeben Java Basics - Anfänger-Themen 3
G byte array in integer konvertieren Java Basics - Anfänger-Themen 15
mwildam Byte array oder String Java Basics - Anfänger-Themen 4
P InputStream in Byte-Array speichern Java Basics - Anfänger-Themen 2
U byte array in datei 'dumpen' / speichern Java Basics - Anfänger-Themen 2
G Byte Array inkrementieren Java Basics - Anfänger-Themen 17
H String in Byte Array wandeln Java Basics - Anfänger-Themen 25
H von und in byte array wandeln Java Basics - Anfänger-Themen 8
D Byte-Array zu Hex-String umwandeln Java Basics - Anfänger-Themen 3
G Konvertierung Byte Array Java Basics - Anfänger-Themen 4
tobiasbeil Von Datei byte für byte lesen und in ein Array einfügen. Java Basics - Anfänger-Themen 11
G Byte-Array Infos speichern Java Basics - Anfänger-Themen 14
F char to byte array Java Basics - Anfänger-Themen 8
S byte-array bitweise auslesen Java Basics - Anfänger-Themen 14
G Char oder Byte Array mit unbekannter länge erstellen? Java Basics - Anfänger-Themen 1
T XML Parsen und Inhalt in ein Byte Array schreiben Java Basics - Anfänger-Themen 3
C Byte-Array mit Dateiinhalt füllen Java Basics - Anfänger-Themen 7
G 4-stelliges-Byte-Array in Integer umwandeln geht das? Java Basics - Anfänger-Themen 10
C Probleme mit Byte konvertieren nach int Java Basics - Anfänger-Themen 10
T IOStreams read(byte[]b) methode Java Basics - Anfänger-Themen 2
I Dateigröße von einem InputStream oder byte[] bekommen Java Basics - Anfänger-Themen 2
D Best Practice Parameter int vs byte Java Basics - Anfänger-Themen 16
J RSA Verschlüsselung Testen / byte[] in Objekt umwandeln Java Basics - Anfänger-Themen 1
M Datentypen Byte, Float und Boolean Java Basics - Anfänger-Themen 13
F byte, short oder doch int? Java Basics - Anfänger-Themen 6
S Performance von byte[], short[], int[]..? Java Basics - Anfänger-Themen 24
P int zu byte Java Basics - Anfänger-Themen 8
M Java Klasse Byte Java Basics - Anfänger-Themen 10
F Byte Ausgabe plötzlich falsch Java Basics - Anfänger-Themen 0
V String in Byte umwandeln Java Basics - Anfänger-Themen 11
O Input/Output Ein (negatives) Byte über PrintWriter hinausschreiben Java Basics - Anfänger-Themen 3
T byte[] zu String mit Sonderzeichen Java Basics - Anfänger-Themen 2
W Nullpointer bei Objekt Serialisierung mit ArrayList<byte[]> etc. Java Basics - Anfänger-Themen 2
J byte - Ausgabe Java Basics - Anfänger-Themen 2
S byte to float Java Basics - Anfänger-Themen 4
J Byte Folge erkennen Java Basics - Anfänger-Themen 5
T Operatoren Float in byte umwandeln Java Basics - Anfänger-Themen 3
Y File to byte[] and byte[] to sysout Java Basics - Anfänger-Themen 3
P Wann Byte-Stream und wann Character-Stream? Java Basics - Anfänger-Themen 11
P String in byte konvertieren, wie? Java Basics - Anfänger-Themen 4
T Erste Schritte Byte Java Basics - Anfänger-Themen 3
R byte[] zu String und Ausgabe Java Basics - Anfänger-Themen 2
H Variablen short <-> byte[] Java Basics - Anfänger-Themen 15
X Datentypen String in byte[] Java Basics - Anfänger-Themen 29
H Variablen string nach byte Java Basics - Anfänger-Themen 12
B Frage zur Effizienz von read und read(byte[]) Java Basics - Anfänger-Themen 23
R Erste Schritte Rechnenoperationen mit byte, short und char Java Basics - Anfänger-Themen 8
V Datentypen Frage zum Datentyp Byte Java Basics - Anfänger-Themen 11
L Byte[] to String, doch bits sind gespiegelt (MSB/LSB) Java Basics - Anfänger-Themen 3
S Von byte[] nach String zurueck nach byte[]. Arrays sind nicht identisch :( Java Basics - Anfänger-Themen 6
S ArrayList<Byte> in String umwandeln Java Basics - Anfänger-Themen 5
V unsigned byte? Java Basics - Anfänger-Themen 27
U short[] nach byte[] Java Basics - Anfänger-Themen 11
S Datentypen Ändern eines byte[] Arrays Java Basics - Anfänger-Themen 4
B byte-weise Verschlüsselung Java Basics - Anfänger-Themen 6
S Input/Output String in byte umwandeln? Java Basics - Anfänger-Themen 5
F von Byte zu 2 Stellig Hex Java Basics - Anfänger-Themen 3
G byte[] (Base64) korrekt übergeben Java Basics - Anfänger-Themen 4
O 64bit- OS byte, short, int oder long bzw. float oder double? Java Basics - Anfänger-Themen 13
G Binär in Byte speichern Java Basics - Anfänger-Themen 7
T Datentypen byte -Division..mal gehts mit cast mal ohne Java Basics - Anfänger-Themen 5
T Datentypen default ist int, cast zu byte nötig... Java Basics - Anfänger-Themen 2
F Byte nach Zahl umwandeln Java Basics - Anfänger-Themen 11
E Datentypen type cast problem (int, byte,) Java Basics - Anfänger-Themen 5
T Datentypen unsigned byte? Java Basics - Anfänger-Themen 9
G Integar zu Byte Java Basics - Anfänger-Themen 4
P Byte mit 0...255? Java Basics - Anfänger-Themen 5
N Datentypen Fehler beim Umwandeln in byte Java Basics - Anfänger-Themen 3
L Umwandlung int <--> byte Java Basics - Anfänger-Themen 2
L Datentypen 250 und byte? Java Basics - Anfänger-Themen 4
L Datentypen byte[] in String und wieder zurück Java Basics - Anfänger-Themen 3
N Files mit Byte an Socket versenden Java Basics - Anfänger-Themen 2
V Byte -> String -> Byte verlustfrei Java Basics - Anfänger-Themen 12
Hindi93 Byte to Int Java Basics - Anfänger-Themen 4
H Datentypen byte[] to int Java Basics - Anfänger-Themen 9
S hex zu byte Java Basics - Anfänger-Themen 4
S Addition zweier 32 Byte langer ByteArrays Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben