fabric
Version:
Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.
3 lines (2 loc) • 907 B
JavaScript
import{defineProperty as e}from"../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{BaseFilter as t}from"./BaseFilter.min.mjs";import{classRegistry as a}from"../ClassRegistry.min.mjs";import{fragmentSource as s}from"./shaders/grayscale.min.mjs";const r={mode:"average"};class i extends t{applyTo2d(e){let{imageData:{data:t}}=e;for(let e,a=0;a<t.length;a+=4){const s=t[a],r=t[a+1],i=t[a+2];switch(this.mode){case"average":e=(s+r+i)/3;break;case"lightness":e=(Math.min(s,r,i)+Math.max(s,r,i))/2;break;case"luminosity":e=.21*s+.72*r+.07*i}t[a+2]=t[a+1]=t[a]=e}}getCacheKey(){return`${this.type}_${this.mode}`}getFragmentSource(){return s[this.mode]}sendUniformData(e,t){e.uniform1i(t.uMode,1)}isNeutralState(){return!1}}e(i,"type","Grayscale"),e(i,"defaults",r),e(i,"uniformLocations",["uMode"]),a.setClass(i);export{i as Grayscale,r as grayscaleDefaultValues};
//# sourceMappingURL=Grayscale.min.mjs.map