UNPKG

lens-filter-gamma

Version:

Small library to apply a gamma filter to a image

3 lines (2 loc) 3.55 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.lensFilterGamma={})}(this,function(t){"use strict";var e,n=(function(t,e){!function(){function h(o,i,s){o.addEventListener("message",function(t){var e=t.data,n=e.id;if("RPC"===e.type&&null!=n)if(e.method){var r=i[e.method];null==r?o.postMessage({type:"RPC",id:n,error:"NO_SUCH_METHOD"}):Promise.resolve().then(function(){return r.apply(null,e.params)}).then(function(t){o.postMessage({type:"RPC",id:n,result:t})}).catch(function(t){o.postMessage({type:"RPC",id:n,error:""+t})})}else{var a=s[n];if(null==a)throw Error("Unknown callback "+n);delete s[n],e.error?a[1](Error(e.error)):a[0](e.result)}})}function r(t,e){var n=document.createElement("canvas");return n.width=t,n.height=e,n}e.getCanvas=r,e.convertImageDataToCanvasURL=function(t){var e=window.document.createElement("canvas"),n=e.getContext("2d");return e.width=t.width,e.height=t.height,n.putImageData(t,0,0),e.toDataURL()},e.applyFilter=function(t){var e=t.data,n=t.transform,i=t.options,s=t.nWorkers,l=function(t,e){var n,o,i,r=this,a={},s="__xpo"+Math.random().toString().substring(2)+"__";"function"==typeof t&&(t="("+Function.prototype.toString.call(t)+")("+s+")"),o=s,i=a,n=(n=(n=t).replace(/^(\s*)export\s+default\s+/m,function(t,e){return i.default=!0,""+e+o+".default="})).replace(/^(\s*)export\s+((?:async\s*)?function(?:\s*\*)?|const|let|var)(\s+)([a-zA-Z$_][a-zA-Z0-9$_]*)/gm,function(t,e,n,r,a){return i[a]=!0,""+e+o+"."+a+"="+n+r+a}),t="var "+o+"={};\n"+n+"\n"+o+";\n("+Function.prototype.toString.call(h)+")(self,"+s+",{})";var l,c=URL.createObjectURL(new Blob([t])),u=new Worker(c,void 0),p=u.terminate,d={},f=0;for(l in u.kill=function(t){u.postMessage({type:"KILL",signal:t}),setTimeout(u.terminate)},u.terminate=function(){URL.revokeObjectURL(c),p.call(r)},u.call=function(r,a){return new Promise(function(t,e){var n="rpc"+ ++f;d[n]=[t,e],u.postMessage({type:"RPC",id:n,method:r,params:a})})},u.rpcMethods={},h(u,u.rpcMethods,d),u.expose=function(t){u[l]=function(){return u.call(t,[].slice.call(arguments))}},a)l in u||u.expose(l);return u}("\n var transform = "+n+";\n\n export function execute(canvas, index, length, options) {\n canvas.data = transform({ \n data: canvas.data, \n length: length, \n options: options\n });\n\n return { result: canvas, index: index };\n }\n "),c=r(e.width,e.height),u=c.getContext("2d");u.putImageData(e,0,0),s=s||1;var p=Math.floor(c.height/s);return new Promise(function(e){for(var n=0,t=void 0,r=0;r<s;r++){t=p,r+1===s&&(t=c.height-p*r);var a=u.getImageData(0,p*r,c.width,t),o=t*c.width*4;l.execute(a,r,o,i).then(function(t){u.putImageData(t.result,0,p*t.index),++n===s&&e(u.getImageData(0,0,c.width,c.height))})}})}}()}(e={exports:{}},e.exports),e.exports),a=(n.getCanvas,n.convertImageDataToCanvasURL,n.applyFilter),o=function(t){for(var e=t.data,n=t.length,r=t.options,a=0;a<n;a+=4)e[a]=255*Math.pow(e[a]/255,r.level),e[a+1]=255*Math.pow(e[a+1]/255,r.level),e[a+2]=255*Math.pow(e[a+2]/255,r.level);return e};t.transform=o,t.default=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=t.data,n=t.options,r=t.nWorkers;if(!e||!n||!n.level)throw new Error("lens-filter-gamma:: invalid options provided");return a({data:e,transform:o,options:n,nWorkers:r})},Object.defineProperty(t,"__esModule",{value:!0})}); //# sourceMappingURL=lens-filter-gamma.umd.js.map