JavaScriptで画像をgzipに圧縮する
参照
コード
// 画像データの読み込み
const encodeSplit = base64Data.split(',');
// atobで Base64(string) ➡ バイナリ画像データ(string) に変換
const encodeImg = atob(encodeSplit[1]);
// バイナリデータをpako.gzipで圧縮
// btoaで バイナリ(string) ➡ Base64(string) に変換
const gzipBase64Data = btoa(new pako.gzip(encodeImg));
console.log("Base64 To GZip Encode");
// atobで Base64(string) ➡ バイナリ(string) に変換
// Base64をカンマ(,)区切りで切り分けて、数値配列化(object)
// new Uint8Arrayでバイナリ配列化(Uint8Array)
const base64BinaryData = (new Uint8Array(atob(gzipBase64Data).split(',').map(Number)));
// バイナリ配列を pako.ungzipで解凍(string)
const gzipBinaryData = new pako.ungzip(base64BinaryData);
// btoaで バイナリ画像データ(string) ➡ Base64(string) に変換
const decodeImg = btoa(gzipBinaryData);