4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

TypeScript: BlobをDataURLに変換する6行の関数

Posted at

こんにちは!今回は、TypeScriptでBlobオブジェクトをDataURLに変換するシンプルな関数を紹介します。この関数は、ファイルのアップロードや画像のプレビュー表示など、様々な場面で役立ちます。さっそくコードを見てみましょう。

const blobToDataUrl = (blob: Blob): Promise<string> =>
  new Promise((resolve, reject) => {
    const reader = new FileReader(); // (1)
    reader.onloadend = () => resolve(reader.result as string); // (2)
    reader.onerror = reject; // (3)
    reader.readAsDataURL(blob); // (4)
  });

この関数は、わずか6行ですが、その中に重要な処理が詰まっています。それぞれの行について解説していきましょう。

  1. const reader = new FileReader();
    FileReaderオブジェクトを生成します。これにより、Blobオブジェクトを読み込むことができます。詳細についてはMDNのFileReaderドキュメントを参照してください。
  2. reader.onloadend = () => resolve(reader.result as string);
    FileReaderonloadendイベントハンドラに、結果を解決するコールバック関数を設定します。reader.resultstring型にキャストされ、Promiseが解決されます。
  3. reader.onerror = reject;
    エラーが発生した場合、onerrorイベントハンドラにreject関数を設定し、Promiseがリジェクトされます。
  4. reader.readAsDataURL(blob);
    最後に、FileReaderreadAsDataURLメソッドを使って、引数で渡されたBlobオブジェクトを読み込みます。これにより、データがDataURLとしてエンコードされ、onloadendイベントが発生します。

この関数を使用すれば、Blobオブジェクトを簡単にDataURLに変換することができます。この投稿が役に立てば幸いです。もし質問や懸念があれば、お気軽にコメントください。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?