StackBlur/dist/stackblur.min.js
2018-11-06 14:40:16 +08:00

3 lines
6.0 KiB
JavaScript

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.StackBlur={})}(this,function(t){"use strict";const e=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259],n=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];function r(t,e,n,r,o){if("string"==typeof t&&(t=document.getElementById(t)),!(t&&"object"==typeof t&&"getContext"in t))throw new TypeError("Expecting canvas with `getContext` method in processCanvasRGB(A) calls!");const a=t.getContext("2d");try{return a.getImageData(e,n,r,o)}catch(t){throw new Error("unable to access image data: "+t)}}function o(t,e,n,o,i,g){if(isNaN(g)||g<1)return;g|=0;let f=r(t,e,n,o,i);f=a(f,e,n,o,i,g),t.getContext("2d").putImageData(f,e,n)}function a(t,r,o,a,i,g){const c=t.data;let s,u,l,x,d,b,h,p,m,y,w,B,C,I,E,N,R,v,D,G,j,A,k,S;const W=g+g+1,_=a-1,H=i-1,M=g+1,O=M*(M+1)/2,P=new f;let T,q=P;for(l=1;l<W;l++)q=q.next=new f,l===M&&(T=q);q.next=P;let z=null,F=null;h=b=0;const J=e[g],K=n[g];for(u=0;u<i;u++){for(N=R=v=D=p=m=y=w=0,B=M*(G=c[b]),C=M*(j=c[b+1]),I=M*(A=c[b+2]),E=M*(k=c[b+3]),p+=O*G,m+=O*j,y+=O*A,w+=O*k,q=P,l=0;l<M;l++)q.r=G,q.g=j,q.b=A,q.a=k,q=q.next;for(l=1;l<M;l++)x=b+((_<l?_:l)<<2),p+=(q.r=G=c[x])*(S=M-l),m+=(q.g=j=c[x+1])*S,y+=(q.b=A=c[x+2])*S,w+=(q.a=k=c[x+3])*S,N+=G,R+=j,v+=A,D+=k,q=q.next;for(z=P,F=T,s=0;s<a;s++)c[b+3]=k=w*J>>K,0!==k?(k=255/k,c[b]=(p*J>>K)*k,c[b+1]=(m*J>>K)*k,c[b+2]=(y*J>>K)*k):c[b]=c[b+1]=c[b+2]=0,p-=B,m-=C,y-=I,w-=E,B-=z.r,C-=z.g,I-=z.b,E-=z.a,x=h+((x=s+g+1)<_?x:_)<<2,p+=N+=z.r=c[x],m+=R+=z.g=c[x+1],y+=v+=z.b=c[x+2],w+=D+=z.a=c[x+3],z=z.next,B+=G=F.r,C+=j=F.g,I+=A=F.b,E+=k=F.a,N-=G,R-=j,v-=A,D-=k,F=F.next,b+=4;h+=a}for(s=0;s<a;s++){for(R=v=D=N=m=y=w=p=0,B=M*(G=c[b=s<<2]),C=M*(j=c[b+1]),I=M*(A=c[b+2]),E=M*(k=c[b+3]),p+=O*G,m+=O*j,y+=O*A,w+=O*k,q=P,l=0;l<M;l++)q.r=G,q.g=j,q.b=A,q.a=k,q=q.next;for(d=a,l=1;l<=g;l++)b=d+s<<2,p+=(q.r=G=c[b])*(S=M-l),m+=(q.g=j=c[b+1])*S,y+=(q.b=A=c[b+2])*S,w+=(q.a=k=c[b+3])*S,N+=G,R+=j,v+=A,D+=k,q=q.next,l<H&&(d+=a);for(b=s,z=P,F=T,u=0;u<i;u++)c[(x=b<<2)+3]=k=w*J>>K,k>0?(k=255/k,c[x]=(p*J>>K)*k,c[x+1]=(m*J>>K)*k,c[x+2]=(y*J>>K)*k):c[x]=c[x+1]=c[x+2]=0,p-=B,m-=C,y-=I,w-=E,B-=z.r,C-=z.g,I-=z.b,E-=z.a,x=s+((x=u+M)<H?x:H)*a<<2,p+=N+=z.r=c[x],m+=R+=z.g=c[x+1],y+=v+=z.b=c[x+2],w+=D+=z.a=c[x+3],z=z.next,B+=G=F.r,C+=j=F.g,I+=A=F.b,E+=k=F.a,N-=G,R-=j,v-=A,D-=k,F=F.next,b+=a}return t}function i(t,e,n,o,a,i){if(isNaN(i)||i<1)return;i|=0;let f=r(t,e,n,o,a);f=g(f,e,n,o,a,i),t.getContext("2d").putImageData(f,e,n)}function g(t,r,o,a,i,g){const c=t.data;let s,u,l,x,d,b,h,p,m,y,w,B,C,I,E,N,R,v,D,G;const j=g+g+1,A=a-1,k=i-1,S=g+1,W=S*(S+1)/2,_=new f;let H,M=_;for(l=1;l<j;l++)M=M.next=new f,l===S&&(H=M);M.next=_;let O=null,P=null;h=b=0;const T=e[g],q=n[g];for(u=0;u<i;u++){for(I=E=N=p=m=y=0,w=S*(R=c[b]),B=S*(v=c[b+1]),C=S*(D=c[b+2]),p+=W*R,m+=W*v,y+=W*D,M=_,l=0;l<S;l++)M.r=R,M.g=v,M.b=D,M=M.next;for(l=1;l<S;l++)x=b+((A<l?A:l)<<2),p+=(M.r=R=c[x])*(G=S-l),m+=(M.g=v=c[x+1])*G,y+=(M.b=D=c[x+2])*G,I+=R,E+=v,N+=D,M=M.next;for(O=_,P=H,s=0;s<a;s++)c[b]=p*T>>q,c[b+1]=m*T>>q,c[b+2]=y*T>>q,p-=w,m-=B,y-=C,w-=O.r,B-=O.g,C-=O.b,x=h+((x=s+g+1)<A?x:A)<<2,p+=I+=O.r=c[x],m+=E+=O.g=c[x+1],y+=N+=O.b=c[x+2],O=O.next,w+=R=P.r,B+=v=P.g,C+=D=P.b,I-=R,E-=v,N-=D,P=P.next,b+=4;h+=a}for(s=0;s<a;s++){for(E=N=I=m=y=p=0,w=S*(R=c[b=s<<2]),B=S*(v=c[b+1]),C=S*(D=c[b+2]),p+=W*R,m+=W*v,y+=W*D,M=_,l=0;l<S;l++)M.r=R,M.g=v,M.b=D,M=M.next;for(d=a,l=1;l<=g;l++)b=d+s<<2,p+=(M.r=R=c[b])*(G=S-l),m+=(M.g=v=c[b+1])*G,y+=(M.b=D=c[b+2])*G,I+=R,E+=v,N+=D,M=M.next,l<k&&(d+=a);for(b=s,O=_,P=H,u=0;u<i;u++)c[x=b<<2]=p*T>>q,c[x+1]=m*T>>q,c[x+2]=y*T>>q,p-=w,m-=B,y-=C,w-=O.r,B-=O.g,C-=O.b,x=s+((x=u+S)<k?x:k)*a<<2,p+=I+=O.r=c[x],m+=E+=O.g=c[x+1],y+=N+=O.b=c[x+2],O=O.next,w+=R=P.r,B+=v=P.g,C+=D=P.b,I-=R,E-=v,N-=D,P=P.next,b+=a}return t}class f{constructor(){this.r=0,this.g=0,this.b=0,this.a=0,this.next=null}}t.BlurStack=f,t.image=function(t,e,n,r){if("string"==typeof t&&(t=document.getElementById(t)),!(t&&"naturalWidth"in t))return;const a=t.naturalWidth,g=t.naturalHeight;if("string"==typeof e&&(e=document.getElementById(e)),!(e&&"getContext"in e))return;e.style.width=a+"px",e.style.height=g+"px",e.width=a,e.height=g;const f=e.getContext("2d");f.clearRect(0,0,a,g),f.drawImage(t,0,0),isNaN(n)||n<1||(r?o(e,0,0,a,g,n):i(e,0,0,a,g,n))},t.canvasRGBA=o,t.canvasRGB=i,t.imageDataRGBA=a,t.imageDataRGB=g,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=stackblur.min.js.map