Heim  >  Artikel  >  Web-Frontend  >  Wie konvertiere ich eine Daten-URL in einen Blob in JavaScript?

Wie konvertiere ich eine Daten-URL in einen Blob in JavaScript?

DDD
DDDOriginal
2024-10-29 21:20:30593Durchsuche

How to Convert a Data URL to a Blob in JavaScript?

Konvertieren von Daten-URLs in Blobs

Das Umwandeln beliebiger Daten in eine Daten-URL mithilfe von readAsDataURL() von FileReader ist eine nützliche Technik. Was aber, wenn Sie diese Daten-URL wieder in eine Blob-Instanz konvertieren müssen?

Browsernative Konvertierung

Derzeit gibt es dafür keine integrierte Browser-API Konvertiert Daten-URLs direkt in Blobs. Es gibt jedoch Problemumgehungslösungen, die benutzerdefinierten JavaScript-Code verwenden.

Benutzerdefinierte JavaScript-Lösung

Eine weithin akzeptierte Methode wurde von Matt auf Stack Overflow vorgeschlagen (Wie man dataURL in umwandelt). Dateiobjekt in Javascript?). Hier ist eine aktualisierte Version seines Codes:

<code class="javascript">function dataURItoBlob(dataURI) {
  const byteString = atob(dataURI.split(',')[1]);
  const mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];

  const ab = new ArrayBuffer(byteString.length);
  const ia = new Uint8Array(ab);

  for (let i = 0; i < byteString.length; i++) {
    ia[i] = byteString.charCodeAt(i);
  }

  const blob = new Blob([ab], { type: mimeString });
  return blob;
}</code>

Verwendung

Sie können jetzt dataURItoBlob() verwenden, um Ihre Daten-URL in ein Blob-Objekt umzuwandeln:

<code class="javascript">const dataURL = 'data:image/png;base64,...';
const blob = dataURItoBlob(dataURL);</code>

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

Stellungnahme:
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