画像をBase64に変換とは、バイナリ画像データを ASCII テキスト文字列へエンコードする技術です。Base64 は 64 個の印字可能文字(A-Z、a-z、0-9、+、/)でバイナリデータを表し、3バイトごとに4つの Base64 文字へ変換し、末尾に = のパディングを付けます。処理全体は RFC 4648 標準に準拠しています。
**エンコード原理**:Base64 は3バイト(24ビット)を4つの6ビットグループに分割し、それぞれを Base64 アルファベットの1文字に対応させます。バイト数が3の倍数でない場合、末尾に1〜2個の = パディング文字を追加します。これによりファイルサイズは約33%(4/3 ≈ 1.33)増えます。
**Web Worker 最適化**:このツールは Web Worker を使い、メインスレッドから独立したブラウザースレッドでエンコードを実行します。ArrayBuffer.transfer() により Worker へゼロコピー転送でき、メインスレッドのブロックを避けます。数MBの画像でもUIは滑らかに応答し、進捗をリアルタイム表示します。
**プライバシーと安全性**:画像をサーバーへアップロードするツールとは違い、このツールは完全にブラウザー内で動作します。画像データは第三者サーバーを通らないため、身分証や契約書などの機密画像を扱う場合に特に重要です。
**利用シーン**:Base64 画像は CSS Sprites(HTTPリクエスト削減)、HTMLメールテンプレート(メールクライアントの画像ブロック回避)、APIでのバイナリデータ送信、外部リソースを参照できないブラウザー拡張機能や単一ファイルアプリでよく使われます。