JavaScript APIを利用したDeflate圧縮と展開 CompressionStream DecompressionStream
zip(pkzip)やgzipの圧縮展開がJavaScript(ブラウザ)のAPIに用意されているようなので使ってみました。
//---------------------------------------
// deflate展開 zip(pkzip)
export async function decompressPkZipDeflate(blob : Blob){
let decomp = new DecompressionStream("deflate-raw");
let strm = blob.stream().pipeThrough(decomp);
let buffs : Uint8Array[] = [];
let strmReader = strm.getReader();
while(1){
let resp = await strmReader.read();
let chunk = resp.value;
if(chunk instanceof Uint8Array){
buffs.push(chunk);
}
if(resp.done)break;
}
return new Blob(buffs);
}
//---------------------------------------
// deflate圧縮 zip(pkzip)
export async function compressPkZipDeflate(blob : Blob){
let comp = new CompressionStream("deflate-raw");
let strm = blob.stream().pipeThrough(comp);
let buffs : Uint8Array[] = [];
let strmReader = strm.getReader();
while(1){
let resp = await strmReader.read();
let chunk = resp.value;
if(chunk instanceof Uint8Array){
buffs.push(chunk);
}
if(resp.done)break;
}
return new Blob(buffs);
}
いいなと思ったら応援しよう!
この記事が役に立ったという方は、サポートお願いします。今後の製作の励みになります。