JavaScript のブロブ

Muhammad Muzammil Hussain 2024年2月15日
  1. JavaScript のブロブ
  2. JavaScript での Blob の利点
  3. Base64 へのブロブ
  4. ブロブから画像へ
  5. BLOB から配列バッファーへ
JavaScript のブロブ

この記事では、Blob オブジェクトについて学び、それが JavaScript ソース コードでどのように機能するかを見ていきます。 例を使用して、Blob が JavaScript でファイル データを保持する方法を確認します。

JavaScript のブロブ

JavaScript では、Blob を使用して、ファイルに格納されたオブジェクトとしてデータを保持します。 単純にデータをバイトのグループに保持し、単純なファイルのように独自のサイズを持ちます。

Blob のサイズとブラウザーの機能に応じて、Blob データはメモリとファイル システムに格納されます。 Blob のコンテンツを配列バッファーとして簡単に読み取ることができるため、Blob はデータをバイナリ形式で格納するのに適しています。

Blob のコンテンツを表示するには、HTML の <a><img>、またはその他の要素タグの URL として Blob を簡単に使用できます。

JavaScript での Blob オブジェクトの基本的な構文は次のとおりです。

var myBlob = new Blob(['Content of Blob'], {type: 'text/plain'});

コード例:

Blob は、Blob URL が指す createObjectURL() オブジェクトを使用して取得できます。

<!DOCTYPE html>
<html>
<head>
    <title>
        JavaScript Blob
    </title>
</head>
<body>
     <script>
        let blobContent = new Blob(["DelftStack is a best website to learn programming!"],
                { type: 'text/plain' }); //blob file content and type
         link.href = URL.createObjectURL(blobContent);
    </script>

    <h1 style="color:blueviolet">DelftStack Learning</h1>
    <h3>JavaScript Create Blob Object and Download File</h3>

    <p>Click on link to to download the file</p>
    <a download="dummyFile.txt" href='#' id="link">Download File</a> //file name
</body>
</html>

出力:

JavaScript Blob の例

上記の HTML ソースで示したように、<script></script> タグ内に Blob オブジェクト blobContent を作成しました。 ファイルのコンテンツとコンテンツ タイプを定義しました。

createObjectURL() を使用して blobContent を URL として取得し、href にリンクします。 #href='#'id=link のアンカー タグを使用して、ファイル dummy.txt をダウンロードしました。

上記のソースを HTML の拡張子を付けて保存し、ブラウザーで開いてから、ダウンロード ファイルのリンクをクリックして、ダウンロードを表示できます。 テキストファイルdummyFile.txtがあります。

JavaScript での Blob の利点

以下に、JavaScript で Blob オブジェクトを使用する利点をいくつか示します。

  1. ブロブは簡単に参照できます。
  2. より大きなバイナリ データ ファイルをデータベースに追加するには、ブロブが、大きなバイナリ データ ファイルを追加するための最適なオプションです。
  3. Blob を使用しながら、アクセス権を簡単に設定できます。
  4. データベースのバックアップには、ブロブの使用中のすべてのデータが含まれます。

Base64 へのブロブ

文字列ベースのデータをサーバーにアップロードする際に、JavaScript ファイル オブジェクトまたは Blob を Base64 文字列に変換すると便利です。 JavaScript を使用して、Base64 文字列と DataURL をファイル オブジェクトから変換できます。

Blob を Base64 でエンコードされた文字列に変換できます。そのエンコードは、バイナリ データを文字列として表します。 そして、このエンコーディングを data-urls で使用できます。

基本的な構文:

const convertBlobToBase64 = async (blob) => {  // blob data
  const reader = new FileReader();
  let result = reader.readAsDataURL(blob);
}

ブロブから画像へ

JavaScript を使用して、画像または画像部分の Blob を作成できます。 canvas 要素を使用して、画像やそのパーツの作成などの画像操作を行います。

基本的な構文:

let myblob =
    await new Promise(resolve => canvasElem.toBlob(resolve, 'image/png'));

BLOB から配列バッファーへ

任意のバッファー ソースを含め、Blob コンストラクターを使用すると、あらゆるものから Blob を生成できます。 blob.arrayBuffer() を使用して、Blob から最下位レベルの配列バッファーを生成できます。

基本的な構文:

const mybufferPromise = await myblob.arrayBuffer();