Node.jsでBase64エンコードされた文字列をバイナリに戻す方法
Node.jsでBase64エンコードされた文字列をバイナリに戻す方法
Node.jsでは、Buffer
クラスを使用してBase64エンコードされた文字列をバイナリに戻すことができます。
手順
Buffer
クラスをインポートします。
const Buffer = require('buffer').Buffer;
- Base64エンコードされた文字列をデコードします。
const decodedString = Buffer.from(encodedString, 'base64');
- デコードされた文字列をバイナリデータとして使用します。
// デコードされた文字列をファイルに書き込みます。
fs.writeFileSync('output.png', decodedString);
// デコードされた文字列を画像として表示します。
const img = document.createElement('img');
img.src = `data:image/png;base64,${encodedString}`;
document.body.appendChild(img);
const Buffer = require('buffer').Buffer;
const encodedString = 'iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeAQMAAABv4z/SAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAAEnQAABJ0Mn5/7QAAAAMSURBVBhXY2AYBfQAQCE0R+7/H/w68kYU8QcQLh8F/g290/8/C+E6D+QAAAAASUVORK5CYII=';
const decodedString = Buffer.from(encodedString, 'base64');
// デコードされた文字列をファイルに書き込みます。
fs.writeFileSync('output.png', decodedString);
// デコードされた文字列を画像として表示します。
const img = document.createElement('img');
img.src = `data:image/png;base64,${encodedString}`;
document.body.appendChild(img);
補足
- Base64エンコードされた文字列は、
data:
URL スキームを使用して画像やその他のバイナリデータを表示するために使用できます。 - Node.jsには、Base64エンコード/デコードを行うためのいくつかのライブラリも存在します。
const Buffer = require('buffer').Buffer;
const encodedString = 'iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeAQMAAABv4z/SAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAAEnQAABJ0Mn5/7QAAAAMSURBVBhXY2AYBfQAQCE0R+7/H/w68kYU8QcQLh8F/g290/8/C+E6D+QAAAAASUVORK5CYII=';
// Base64エンコードされた文字列をデコードします。
const decodedString = Buffer.from(encodedString, 'base64');
// デコードされた文字列をファイルに書き込みます。
fs.writeFileSync('output.png', decodedString);
// デコードされた文字列を画像として表示します。
const img = document.createElement('img');
img.src = `data:image/png;base64,${encodedString}`;
document.body.appendChild(img);
- デコードされた文字列をファイルに書き込みます。
実行方法
- このコードをファイルに保存します。
- Node.jsを使用してファイルをを実行します。
出力
output.png
というファイルが作成されます。- ブラウザに画像が表示されます。
補足
- このコードは、Base64エンコードされた文字列をバイナリデータに戻す方法を示しています。
- バイナリデータは、ファイル、画像、その他の形式に変換することができます。
Node.jsでBase64エンコードされた文字列をバイナリに戻す方法
他の方法
util.promisify
を使用して、Buffer.from
関数を非同期化することができます。
const util = require('util');
const bufferFrom = util.promisify(Buffer.from);
async function decodeBase64(encodedString) {
const decodedString = await bufferFrom(encodedString, 'base64');
// デコードされた文字列を処理します。
}
これらのライブラリを使用すると、より簡単にBase64エンコード/デコードを行うことができます。
ブラウザのAPIを使用する
ブラウザでは、atob
とbtoa
というAPIを使用してBase64エンコード/デコードを行うことができます。
const decodedString = atob(encodedString);
// デコードされた文字列を処理します。
const encodedString = btoa(decodedString);
- 簡單な方法でBase64エンコード/デコードを行いたい場合は、
Buffer
クラスを使用するのがおすすめです。 - 非同期処理を行いたい場合は、
util.promisify
を使用するのがおすすめです。 - より多くの機能が必要な場合は、第三者ライブラリを使用するのがおすすめです。
- ブラウザで動作するコードが必要な場合は、ブラウザのAPIを使用するのがおすすめです。
node.js encoding base64