Heim > Web-Frontend > js-Tutorial > Wie konvertiere ich einen Base64-String in einen Blob in JavaScript?

Wie konvertiere ich einen Base64-String in einen Blob in JavaScript?

Linda Hamilton
Freigeben: 2024-12-24 16:09:15
Original
815 Leute haben es durchsucht

How to Convert a Base64 String to a Blob in JavaScript?

Erstellen eines Blobs aus einem Base64-String in JavaScript

Beim Arbeiten mit Binärdaten, die als Base64-String codiert sind, kann eine Konvertierung erforderlich sein es in ein Blob-Objekt. Dies kann nützlich sein, um die Daten in einem Webbrowser anzuzeigen oder auf dem Gerät des Benutzers zu speichern.

Dekodierung der Base64-Zeichenfolge

Der erste Schritt besteht darin, die Base64 zu dekodieren string in eine Zeichenfolge aus Byte-Zeichen. Dies kann mit der Funktion atob erreicht werden.

const byteCharacters = atob(b64Data);
Nach dem Login kopieren

Konvertieren von Byte-Zeichen in ein Byte-Array

Als nächstes müssen wir die konvertieren Byte-Zeichen in ein echtes typisiertes Byte-Array. Dies kann durch die Übergabe der Byte-Zeichen an den Konstruktor Uint8Array erfolgen.

const byteNumbers = new Array(byteCharacters.length);
for (let i = 0; i < byteCharacters.length; i++) {
    byteNumbers[i] = byteCharacters.charCodeAt(i);
}

const byteArray = new Uint8Array(byteNumbers);
Nach dem Login kopieren

Erstellen des Blob-Objekts

Schließlich können wir umschließen das Byte-Array in einem Array und übergeben Sie es an den Blob-Konstruktor, um den Blob zu erstellen Objekt.

const blob = new Blob([byteArray], {type: contentType});
Nach dem Login kopieren

Leistungsoptimierung

Der obige Code funktioniert, aber seine Leistung kann durch die Verarbeitung der Bytezeichen in kleineren Abschnitten verbessert werden. Eine Slice-Größe von 512 Bytes ist normalerweise eine gute Wahl.

Beispielfunktion

Hier ist eine Funktion, die eine Base64-Zeichenfolge mithilfe des optimierten Ansatzes in ein Blob-Objekt konvertiert:

const b64toBlob = (b64Data, contentType='', sliceSize=512) => {
  const byteCharacters = atob(b64Data);
  const byteArrays = [];

  for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
    const slice = byteCharacters.slice(offset, offset + sliceSize);

    const byteNumbers = new Array(slice.length);
    for (let i = 0; i < slice.length; i++) {
      byteNumbers[i] = slice.charCodeAt(i);
    }

    const byteArray = new Uint8Array(byteNumbers);
    byteArrays.push(byteArray);
  }
    
  const blob = new Blob(byteArrays, {type: contentType});
  return blob;
};
Nach dem Login kopieren

Verwendungsbeispiel

An Verwenden Sie die Funktion, übergeben Sie einfach die Base64-Zeichenfolge und den Inhaltstyp als Argumente.

const blob = b64toBlob(b64Data, contentType);
Nach dem Login kopieren

Das resultierende Blob-Objekt kann dann verwendet werden, um ein Bild zu erstellen oder die Daten herunterzuladen.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen Base64-String in einen Blob in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage