Use web worker to compress images
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/20372/130355/zipped.js
// https://github.com/baivong/Userscript
(function () {
'use strict';
function generateZip(index, name) {
var zip = new JSZip();
box[('item' + index)].forEach(function (imgBlob) {
zip.file(imgBlob.name, imgBlob.content);
});
zip.generateAsync({
type: 'blob'
}).then(function (blob) {
self.postMessage({
index: index,
name: name,
content: blob
});
}, function (reason) {
self.postMessage(reason);
});
}
var box = {};
self.addEventListener('message', function (e) {
var i = 'item' + e.data.index;
if (!box[i]) box[i] = [];
if (e.data.run) {
generateZip(e.data.index, e.data.name);
} else {
box[i].push({
name: e.data.name,
content: e.data.content
});
}
}, false);
})();