前回の質問の続きで、JavaScriptで600 x 600ほどの巨大な2次元配列を含むJSONファイルを作成する際に圧縮したい、と思い、このサイトで公開されているZopfli.js
というライブラリを導入しました。
以下のように、600 x 600ほどのサイズのbig2DArray
という2次元配列をZopfli
を使って圧縮し、それをデータ保存用のオブジェクトobj
に格納し、JSON.stringify
でJSON化する、というコードを書きました。
//巨大なサイズの2次元配列big2DArrayを圧縮する /** @type {(Array.<number>|Uint8Array)} */ const plain = big2DArray; /** @type {Zopfli.Deflate} */ const compressor = new Zopfli.Deflate(plain); /** @type {Uint8Array} */ const compressed = compressor.compress(); //オブジェクトに格納 const obj = { big2DArray:compressed, anotherData:123, anotherData2:"hogehoge" } //JSONにする const json = JSON.stringify(obj);
その結果、700KBほどあったJSONのデータが1KBまで圧縮され、600 x 600ほどのサイズだったbig2DArray
のプロパティーの値は、以下のようにたった13個の項目からなるオブジェクトになっていました:
json
1 2big2DArray:{"0":55,"1":3,"2":23,"3":159,"4":5,"5":24,"6":2,"7":99,"8":0,"9":0,"10":3,"11":84,"12":9,"13":44}
big2DArray
の圧縮には成功したのですが、これを解凍して元の600 x 600 の2次元配列に戻すやり方分かりません。
上記のサイトには圧縮の方法しか書いておらず、「Zopfli 解凍」などのワードで検索しても、具体的な解凍の仕方についてはなかなか情報が見当たりません。
どうすればいいでしょうか?
ご回答よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。