From 7b5362f5edcc9ddb91b0a5224ff107d57e12902a Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Sun, 3 Mar 2013 17:50:39 -0500 Subject: canvasquery --- public/js/canvasquery.min.js | 51 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 public/js/canvasquery.min.js (limited to 'public/js/canvasquery.min.js') diff --git a/public/js/canvasquery.min.js b/public/js/canvasquery.min.js new file mode 100644 index 0000000..0fff546 --- /dev/null +++ b/public/js/canvasquery.min.js @@ -0,0 +1,51 @@ +/* + Canvas Query 0.8.1 + http://canvasquery.org + (c) 2012-2013 http://rezoner.net + Canvas Query may be freely distributed under the MIT license. +*/ + +(function(l,v){var y=/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent);l.requestAnimationFrame=l.requestAnimationFrame||l.webkitRequestAnimationFrame||l.mozRequestAnimationFrame||l.oRequestAnimationFrame||l.msRequestAnimationFrame||function(a){l.setTimeout(a,1E3/60)};var g=function(a){if(0===arguments.length){var c=g.createCanvas(l.innerWidth,l.innerHeight);l.addEventListener("resize",function(){})}else if("string"===typeof a)c=document.querySelector(a);else if("number"===typeof a)c= +g.createCanvas(arguments[0],arguments[1]);else if(a instanceof Image||a instanceof HTMLImageElement)c=g.createCanvas(a);else{if(a instanceof g.Wrapper)return a;c=a}return new g.Wrapper(c)};g.extend=function(){for(var a=1;aa?2*a*c:1-2*(1-a)*(1-c))|0))},hardLight:function(a,c){return g.blendFunctions.overlay(c,a)},softLight:function(a,c){a/=255;c/=255;return g.limitValue(255*((1-2*c)*a*a+2*c*a),0,255)},dodge:function(a, +c){return Math.min(256*a/(255-c+1),255)},burn:function(a,c){return 255-Math.min(256*(255-a)/(c+1),255)},multiply:function(a,c){return c*a/255},divide:function(a,c){return Math.min(256*a/(c+1),255)},screen:function(a,c){return 255-(255-c)*(255-a)/255},grainExtract:function(a,c){return g.limitValue(a-c+128,0,255)},grainMerge:function(a,c){return g.limitValue(a+c-128,0,255)},difference:function(a,c){return Math.abs(a-c)},addition:function(a,c){return Math.min(a+c,255)},substract:function(a,c){return Math.max(a- +c,0)},darkenOnly:function(a,c){return Math.min(a,c)},lightenOnly:function(a,c){return Math.max(a,c)},color:function(a,c){var b=g.rgbToHsl(a),d=g.rgbToHsl(c);return g.hslToRgb(d[0],d[1],b[2])},hue:function(a,c){var b=g.rgbToHsv(a),d=g.rgbToHsv(c);return d[1]?g.hsvToRgb(d[0],b[1],b[2]):g.hsvToRgb(b[0],b[1],b[2])},value:function(a,c){var b=g.rgbToHsv(a),d=g.rgbToHsv(c);return g.hsvToRgb(b[0],b[1],d[2])},saturation:function(a,c){var b=g.rgbToHsv(a),d=g.rgbToHsv(c);return g.hsvToRgb(b[0],d[1],b[2])}}, +blend:function(a,c,b,d){"undefined"===typeof d&&(d=1);a=g(a);c=g(c);var f=c.context,e=a.context.getImageData(0,0,a.canvas.width,a.canvas.height);c=f.getImageData(0,0,c.canvas.width,c.canvas.height);e=e.data;c=c.data;var f=this.createImageData(a.canvas.width,a.canvas.height),h=f.data,m=g.blendFunctions[b];if(-1!==g.specialBlendFunctions.indexOf(b)){b=0;for(var j=e.length;bb?b:a},mix:function(a,c,b){return a+(c-a)*b},hexToRgb:function(a){return["0x"+a[1]+a[2]|0,"0x"+a[3]+a[4]|0,"0x"+a[5]+a[6]|0]},rgbToHex:function(a, +c,b){return"#"+(16777216+(a<<16)+(c<<8)+b).toString(16).slice(1,7)},rgbToHsl:function(a,c,b){a instanceof Array&&(b=a[2],c=a[1],a=a[0]);a/=255;c/=255;b/=255;var d=Math.max(a,c,b),f=Math.min(a,c,b),e,h=(d+f)/2;if(d==f)e=f=0;else{var g=d-f,f=0.5c&&(c+=1);1c?b:c<2/3? +a+6*(b-a)*(2/3-c):a},f=0.5>b?b*(1+c):b+c-b*c,e=2*b-f;b=d(e,f,a+1/3);c=d(e,f,a);a=d(e,f,a-1/3)}return[255*b|0,255*c|0,255*a|0]},rgbToHsv:function(a,c,b){a instanceof Array&&(b=a[2],c=a[1],a=a[0]);a/=255;c/=255;b/=255;var d=Math.max(a,c,b),f=Math.min(a,c,b),e,h=d-f;if(d==f)e=0;else{switch(d){case a:e=(c-b)/h+(ca?(d=this.canvas.height*(a/this.canvas.width)|0,b=a):(b=this.canvas.width,d=this.canvas.height):null===a&&(this.canvas.width>a?(b=this.canvas.width*(c/this.canvas.height)|0,d=c):(b=this.canvas.width,d=this.canvas.height));b= +g(b,d).drawImage(this.canvas,0,0,this.canvas.width,this.canvas.height,0,0,b,d);this.canvas=b.canvas;this.context=b.context;return this},trim:function(a){var c;a?(a=g.color(a).toArray(),c=!a[3]):c=!0;for(var b=this.context.getImageData(0,0,this.canvas.width,this.canvas.height).data,d=[this.canvas.width,this.canvas.height,0,0],f=0,e=b.length;fd[2]&&(d[2]=h);md[3]&&(d[3]=m)}0===d[2]||0===d[3]||this.crop(d[0],d[1],d[2]-d[0]+1,d[3]-d[1]+1);return this},resizePixel:function(a){var c=this.context.getImageData(0,0,this.canvas.width,this.canvas.height).data,b=document.createElement("canvas"),d=b.context=b.getContext("2d");b.width=this.canvas.width*a|0;b.height=this.canvas.height*a|0;for(var f=0,e=c.length;fd&&(k[++j]="",g=0);k[j]+=a;g+=l}else k=[a];for(n=0;nMath.abs(e[0]-a)?g.wrapValue(c,0,1):e[0],f=g.hslToRgb(f,e[1],e[2]),d[h+0]=f[0],d[h+1]=f[1],d[h+2]=f[2]; +this.context.putImageData(b,0,0);return this},invert:function(){for(var a=this.context.getImageData(0,0,this.canvas.width,this.canvas.height),c=a.data,b=0,d=c.length;bd&&(k[++a]="",g=0);k[a]+=j;g+=l}}else k=[a];for(n=0;nc&&(h[++e]="",f=0);h[e]+=j;f+=k}else h=[a],c=this.measureText(a).width;return{height:0.6*h.length*d|0,width:c}},paperBag:function(a,c,b,d,f,e){this.beginPath();this.moveTo(a,c);this.quadraticCurveTo(a+b/2|0,c+d*e|0,a+b,c);this.quadraticCurveTo(a+b-b*f|0,c+d/2|0,a+b,c+d);this.quadraticCurveTo(a+b/2|0,c+d-d*e|0,a,c+d);this.quadraticCurveTo(a+b*f|0,c+d/2|0,a,c)},borderImage:function(a,c,b,d,f,e,h,g, +j,k){this.drawImage(a,j,0,a.width-j-h,e,c+j,b,d-j-h,e);this.drawImage(a,j,a.height-g,a.width-j-h,g,c+j,b+f-g,d-j-h,g);this.drawImage(a,0,e,j,a.height-g-e,c,b+e,j,f-g-e);this.drawImage(a,a.width-h,e,h,a.height-g-e,c+d-h,b+e,h,f-g-e);this.drawImage(a,0,0,j,e,c,b,j,e);this.drawImage(a,a.width-h,0,h,e,c+d-h,b,h,e);this.drawImage(a,a.width-h,a.height-g,h,g,c+d-h,b+f-g,h,g);this.drawImage(a,0,a.height-g,j,g,c,b+f-g,j,g);k&&("string"===typeof k?this.fillStyle(k).fillRect(c+j,b+e,d-j-h,f-e-g):this.drawImage(a, +j,e,a.width-h-j,a.height-g-e,c+j,b+e,d-j-h,f-e-g))},convolve:function(a,c,b){"undefined"===typeof b&&(b=1);"undefined"===typeof c&&(c=1);for(var d=this.context.getImageData(0,0,this.canvas.width,this.canvas.height),f=Math.sqrt(a.length)+0.5|0,e=f/2|0,h=d.data,m=d.width,d=d.height,j=g.createImageData(this.canvas.width,this.canvas.height),k=j.data,n=1;n=a?255:0;this.context.putImageData(c,0,0);return this},sepia:function(){for(var a=this.context.getImageData(0,0,this.canvas.width,this.canvas.height),c=a.data,b=0;bl&&eMath.abs(c)?0=c.which?String.fromCharCode(c.which).toLowerCase():g.keycodes[c.which];a.call(self, +c)});return this},onKeyUp:function(a){document.addEventListener("keyup",function(c){c=48<=c.which&&90>=c.which?String.fromCharCode(c.which).toLowerCase():g.keycodes[c.which];a.call(self,c)});return this},onResize:function(a){var c=this;l.addEventListener("resize",function(){a.call(c,l.innerWidth,l.innerHeight)});a.call(c,l.innerWidth,l.innerHeight);return this},onDropImage:function(a){var c=this;document.addEventListener("drop",function(b){b.stopPropagation();b.preventDefault();b=b.dataTransfer.files[0]; +if(!/image/i.test(b.type))return!1;var d=new FileReader;d.onload=function(b){var d=new Image;d.onload=function(){a.call(c,this)};d.src=b.target.result};d.readAsDataURL(b)});document.addEventListener("dragover",function(a){a.preventDefault()});return this}};for(var u="arc arcTo beginPath bezierCurveTo clearRect clip closePath createImageData createLinearGradient createRadialGradient createPattern drawFocusRing drawImage fill fillRect fillText getImageData isPointInPath lineTo measureText moveTo putImageData quadraticCurveTo rect restore rotate save scale setTransform stroke strokeRect strokeText transform translate".split(" "), +q=0;q