$("#palette").load(function(){ console.log("hello"); var offset = $("#palette").offset(); var paletteImg = $("#palette")[0]; var palette = cq(paletteImg); var pattern, mask; var color = new Color( 0, 0, 0 ); // $("body").append(palette.canvas); $("#palette").click(function(e){ // they are all 8x8 // the first one starts at (15, 5), next one is 16 pixels down or to the right // there are 16 rows and 6 columns, so 92 patterns total var point = new Point(e, offset); click(point); }); var click = function(point) { point.subtract({ x: 15, y: 5 }); point.quantize( 18, 16 ); point.add({ x: 15, y: 5 }); pattern = palette.clone().crop( point.x, point.y, 8, 8 ); mask = pattern.colorToMask("#fff"); pattern.applyMask(mask); patternURI = pattern.clone().blend( color.toString(), "screen", 1.0 ).canvas.toDataURL("image/png"); document.body.style.backgroundImage = 'url(' + patternURI + ')'; } var random = function(){ var point = new Point(paletteImg.width, paletteImg.height).scale( Math.random(), Math.random() ).floor(); click(point); } random(); for (var i in colors) { var swatch = colors[i].swatch(); document.body.appendChild(swatch); swatch.onclick = function(){ color = $(this).data("color"); p = cq(paletteImg); patternURI = pattern.clone().blend( color.toString(), "screen", 1.0 ).canvas.toDataURL("image/png"); document.body.style.backgroundImage = 'url(' + patternURI + ')'; } } });