JavaScriptでのデータURIの操作

JavaScriptでデータURIをプログラム的に生成、操作、デコードする。FileReader、Canvas、Blob、fetch APIを使用したデータURI操作。

JavaScript

詳細な説明

JavaScriptデータURI API

JavaScriptはデータURIを操作するための複数のネイティブAPIを提供します:ファイルから生成するFileReader、グラフィックから作成するCanvas、データURIとBlob間を変換するFetch API。

ファイルからデータURIを生成

function fileToDataUri(file) {
  return new Promise((resolve, reject) => {
    const reader = new FileReader();
    reader.onload = () => resolve(reader.result);
    reader.onerror = reject;
    reader.readAsDataURL(file);
  });
}

CanvasからデータURIを生成

const canvas = document.createElement('canvas');
canvas.width = 100;
canvas.height = 100;
const ctx = canvas.getContext('2d');
ctx.fillStyle = '#3b82f6';
ctx.fillRect(0, 0, 100, 100);
const dataUri = canvas.toDataURL('image/png');

データURIをBlobに変換

async function dataUriToBlob(dataUri) {
  const response = await fetch(dataUri);
  return response.blob();
}

データURIのダウンロード

function downloadDataUri(dataUri, filename) {
  const link = document.createElement('a');
  link.href = dataUri;
  link.download = filename;
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
}

ユースケース

サーバーアップロードなしにインスタントプレビューのためのサムネイルをデータURIとして生成し、編集された画像をダウンロード可能なファイルとしてエクスポートする必要があるブラウザベースの画像エディタを構築している場合。

試してみる — Data URL Generator & Decoder

フルツールを開く