summaryrefslogtreecommitdiff
path: root/gif-encode/worker.js
diff options
context:
space:
mode:
authorjules <jules@okfoc.us>2013-12-13 15:28:31 -0500
committerjules <jules@okfoc.us>2013-12-13 15:28:31 -0500
commit346f3a9817b1e0812565396b9811a1ce5adc97b8 (patch)
tree47944eb9a2762ef2036d140430a69be5afa9f368 /gif-encode/worker.js
parent96fd8423cc0793d47cab9117b0167fe19041cdea (diff)
reorganize
Diffstat (limited to 'gif-encode/worker.js')
-rw-r--r--gif-encode/worker.js88
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
-};
-