1var chroma_key={start:function(){var images=document.getElementsByTagName("img");for(var i=0;i<images.length;++i){var image=images[i];var key=this.get_chroma_key(image);var alpha=image.getAttribute("data-alpha");if(!key&&!alpha) 2continue;var d=this.get_delta(image);var canvas=document.createElement("canvas");canvas.setAttribute("width",image.width);canvas.setAttribute("height",image.height);var id=image.id;canvas.className=image.className;var alt=image.getAttribute("alpha");if(alt) 3canvas.textContent=alt;image.parentNode.insertBefore(canvas,image);image.parentNode.removeChild(image);--i;canvas.id=id;var ctx=canvas.getContext('2d');ctx.drawImage(image,0,0,image.width,image.height,0,0,canvas.width,canvas.height);if(key) 4this.apply_key(canvas,ctx,key,d);else if(alpha) 5this.apply_alpha(canvas,ctx,alpha);}},apply_alpha:function(canvas,ctx,alpha){var alpha_image=new Image();alpha_image.onload=function(){alpha_canvas=document.createElement("canvas");alpha_canvas.setAttribute("width",alpha_image.width);alpha_canvas.setAttribute("height",alpha_image.height);canvas.parentNode.insertBefore(alpha_canvas,canvas);var alpha_ctx=alpha_canvas.getContext('2d');alpha_ctx.drawImage(alpha_image,0,0,alpha_image.width,alpha_image.height,0,0,alpha_canvas.width,alpha_canvas.height);var frame=ctx.getImageData(0,0,canvas.width,canvas.height);var alpha_frame=alpha_ctx.getImageData(0,0,alpha_canvas.width,alpha_canvas.height);for(var j=0;j<frame.data.length;j+=4) 6frame.data[j+3]=alpha_frame.data[j+1];ctx.putImageData(frame,0,0);alpha_canvas.parentNode.removeChild(alpha_canvas)};alpha_image.src=alpha},apply_key:function(canvas,ctx,key,d){var frame=ctx.getImageData(0,0,canvas.width,canvas.height);for(var j=0;j<frame.data.length;j+=4){var r=frame.data[j];var g=frame.data[j+1];var b=frame.data[j+2];if(key.r-d<=r&&r<key.r+d&&key.g-d<=g&&g<key.g+d&&key.b-d<=b&&b<key.b+d){frame.data[j+3]=0}} 7ctx.putImageData(frame,0,0)},get_chroma_key:function(image){var n,p=parseInt,color=image.getAttribute("data-chroma-key");if(n=/^\s*#([\da-fA-F]{2})([\da-fA-F]{2})([\da-fA-F]{2})/.exec(color)) 8return{r:p(n[1],16),g:p(n[2],16),b:p(n[3],16)};if(n=/^\s*#([\da-fA-F])([\da-fA-F])([\da-fA-F])/.exec(color)) 9return{r:p(n[1],16)*17,g:p(n[2],16)*17,b:p(n[3],16)*17};if(n=/^\s*rgb\(\s*([\d]+)\s*,\s*([\d]+)\s*,\s*([\d]+)\s*\)/.exec(color)) 10return{r:p(n[1]),g:p(n[2]),b:p(n[3])};if(n=/^\s*rgba\(\s*([\d]+)\s*,\s*([\d]+)\s*,\s*([\d]+)\s*,\s*([\d]+|[\d]*.[\d]+)\s*\)/.exec(color)) 11return{r:p(n[1]),g:p(n[2]),b:p(n[3]),a:p(n[4])};return null},get_delta:function(image){var delta=image.getAttribute("data-delta");if(delta==null) 12return 10;delta=parseInt(delta);return isNaN(delta)?10:delta}};window.addEventListener("load",function(){chroma_key.start()},!1)
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.