zipped

Use web worker to compress images

이 스크립트는 직접 설치하는 용도가 아닙니다. 다른 스크립트에서 메타 지시문 // @require https://update.greasyfork.org/scripts/20372/130355/zipped.js을(를) 사용하여 포함하는 라이브러리입니다.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

You will need to install an extension such as Tampermonkey to install this script.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// 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);

})();