diff options
| author | jules <jules@okfoc.us> | 2013-12-13 15:28:31 -0500 |
|---|---|---|
| committer | jules <jules@okfoc.us> | 2013-12-13 15:28:31 -0500 |
| commit | 346f3a9817b1e0812565396b9811a1ce5adc97b8 (patch) | |
| tree | 47944eb9a2762ef2036d140430a69be5afa9f368 /gif-encode/worker.js | |
| parent | 96fd8423cc0793d47cab9117b0167fe19041cdea (diff) | |
reorganize
Diffstat (limited to 'gif-encode/worker.js')
| -rw-r--r-- | gif-encode/worker.js | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/gif-encode/worker.js b/gif-encode/worker.js deleted file mode 100644 index b2f32d4..0000000 --- a/gif-encode/worker.js +++ /dev/null @@ -1,88 +0,0 @@ -importScripts('LZWEncoder.js', 'NeuQuant.js', 'GIFEncoder.js'); - -self.onmessage = function(event) { - var data = event.data; - var task = data['task']; - switch (task) { - case 'encode': - encode (data); - break; - case 'quantize': - quantize(data); - break; - } -} - -function log(msg) { - self.postMessage({ - task: 'message', - message: msg - }); -} - -function quantize (data) { - var imageData = data["imageData"]; - var pixels = discardAlphaChannel( imageData.data ); - - var nq = new NeuQuant (pixels, pixels.length, 1); - var colortab = nq.process(); - - self.postMessage({ - task: 'quantize', - neuquant: nq.save(), - colortab: colortab - }); -} - -function discardAlphaChannel( imageData ) { - var pixels = []; - - for ( var i = 0, b = 0, _len = imageData.length; i < _len; b += 4 ) { - pixels[i++] = imageData[b]; - pixels[i++] = imageData[b+1]; - pixels[i++] = imageData[b+2]; - } - return pixels; -} - -function encode (data) { - var frame_index = data["frame_index"]; - var frame_length = data["frame_length"]; - var height = data["height"]; - var width = data["width"]; - var imageData = data["imageData"]; - var delay = data["delay"]; - var neuquant = data["neuquant"]; - var colortab = data["colortab"]; - - // Create a new GIFEncoder for every new worker - var encoder = new GIFEncoder(); - encoder.setRepeat(0); // loop forever - encoder.setQuality(1); - encoder.setSize(width, height); - encoder.setDelay(delay); - - if (frame_index == 0) { - encoder.start(); - } - else { - encoder.cont(); - encoder.setProperties(true, false); //started, firstFrame - } - - // Load the neural net here because the color table gets clobbered by encoder.start(); - encoder.setNeuquant(neuquant, colortab); - encoder.addFrame(imageData, true); - - if(frame_length == frame_index) { - encoder.finish(); - } - - self.postMessage({ - task: 'encode', - frame_index: frame_index, - frame_data: encoder.stream().getData() - }); - // on the page, search for the GIF89a to see the frame_index -}; - |
