- 方法1: atob() 関数とテキストエンコーディングを使用する方法
function base64ToArrayBuffer(base64) {
const binaryString = window.atob(base64);
const len = binaryString.length;
const bytes = new Uint8Array(len);
for (let i = 0; i < len; i++) {
bytes[i] = binaryString.charCodeAt(i);
}
return bytes.buffer;
}
// 使用例:
const base64Data = "SGVsbG8gd29ybGQh"; // Base64形式のデータ
const arrayBuffer = base64ToArrayBuffer(base64Data);
console.log(arrayBuffer);
- 方法2: Fetch APIを使用してBase64データを取得し、ArrayBufferに変換する方法
async function base64ToArrayBuffer(url) {
const response = await fetch(url);
const base64Data = await response.text();
const binaryString = window.atob(base64Data);
const len = binaryString.length;
const bytes = new Uint8Array(len);
for (let i = 0; i < len; i++) {
bytes[i] = binaryString.charCodeAt(i);
}
return bytes.buffer;
}
// 使用例:
const imageUrl = "https://example.com/image-base64.txt"; // Base64形式のデータが含まれるテキストファイルのURL
const arrayBuffer = await base64ToArrayBuffer(imageUrl);
console.log(arrayBuffer);
上記のコード例では、base64ToArrayBuffer()
関数を使用してBase64データをArrayBufferに変換しています。方法1では、atob()
関数を使用してBase64データをデコードし、文字コードを使用してバイナリデータに変換しています。方法2では、Fetch APIを使用してBase64データが含まれるテキストファイルを取得し、同様の手順で変換しています。
これらの方法を使用すると、Base64形式のデータをJavaScriptのArrayBufferとして利用できます。これは、バイナリデータの処理や操作に便利です。