Skip to content

Instantly share code, notes, and snippets.

@lmccart
Last active October 27, 2015 21:19
Show Gist options
  • Save lmccart/e203c3a0032fc3e019d5 to your computer and use it in GitHub Desktop.
Save lmccart/e203c3a0032fc3e019d5 to your computer and use it in GitHub Desktop.
// Worker thread to help with massive pixel processing.
self.onmessage = function(event) {
if (event.data.hasOwnProperty("message")){
var message = event.data.message;
console.log("Worker got message ", event.data.message);
if (message === "PIXEL_IMAGE_ARRAY"){
var data = event.data.data;
importScripts('pixelImage.js', 'pixelColor.js', 'utilities.js', 'settings.js');
var pixImage = new pixelImage( data, cWidth, cHeight );
// Add this image to our image arrays
self.images.push( pixImage );
var workerMessage = {message: "PIXEL_LOADED" };
self.postMessage( workerMessage );
}else if (message === "ON_FINISH_LOADING"){
importScripts('pixelImage.js', 'pixelColor.js', 'settings.js', 'walkPixels.js');
var width = event.data.width;
var orientation = event.data.orientation;
self.pixelWeave = walkPixels( self.images, width, 20, orientation );
var workerMessage = {message: "PIXEL_WEAVE", data: pixelWeave.pixels };
self.postMessage( workerMessage );
}else if (message === "SAVE_IMAGE"){
if (self.pixelWeave){
importScripts( 'settings.js' );
var bigPixels = enlargePixels( self.pixelWeave, pixelEnlargeFactor );
var workerMessage = {message: "ENLARGED", data: bigPixels };
self.postMessage( workerMessage );
// clear images
self.images = [];
}
}else if (message === "NEW_SEARCH"){
// clear images
self.images = [];
}
}
};
self.images = [];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment