pixel-buffer-diff
Advanced tools
+1
-1
@@ -1,1 +0,1 @@ | ||
| Object.defineProperty(exports,"__esModule",{value:!0}),exports.diff=exports.diffImageDatas=void 0;exports.diffImageDatas=(t,e,a,i)=>{void 0===i.threshold&&(i.threshold=.3),void 0===i.cumulatedThreshold&&(i.cumulatedThreshold=.5),void 0===i.enableMinimap&&(i.enableMinimap=!1);const{width:n,height:h}=t,r=n*h,d=t.data,o=e.data,f=a.data,l=d.length,s=o.length,c=f.length;if(n!==e.width||h!==e.height||4*r!==l||l!==s)throw new Error("Different baseline and candidate ImageData dimensions");const m=a.width/n,u=c/l;if(a.height!==h||m!==u||1!==m&&3!==m)throw new Error("Invalid diff ImageData dimensions");const w=c===l?1:2,g=d.buffer,M=o.buffer,p=f.buffer,b=new Uint32Array(g,0,l>>2),x=new Uint32Array(M,0,l>>2),y=new Uint32Array(p,0,c>>2),D=i.threshold*i.threshold*35215;let A=0,U=0,v=0,I=0,T=0,E=0,_=0,j=0;const q=Math.ceil(Math.sqrt(r)/128),C=l/q&-4;for(let t=0;t<q;t++)j+=(.299*(d[A]+o[A])+.587*(d[A+1]+o[A+1])+.114*(d[A+2]+o[A+2]))/q/2,A+=C;const O=j<128,P=O?1057016832:1056964863,k=O?1056964863:1057016832;A=0;const z=Math.ceil(h/256),B=Math.ceil(n/256),F=new Uint8ClampedArray(B*z),G=2===w?n:0,H=2*G+n,J=Math.max(n,h),K=Math.max(B,z),L=new Uint32Array(J);let N=0;for(let t=0;t<K;t++)L.fill(t,N,Math.min(N+256,J)),N+=256;for(let t=0;t<h;t++){const e=L[t]*B;G>0&&(y.set(new Uint32Array(g,A,n),v),v+=n,y.set(new Uint32Array(M,A,n),v+n));let a=4034073399*(4034073399^t);for(let t=0;t<n;t++,v++,U++,A+=4,a++){if(b[U]===x[U])continue;const i=o[A]-d[A],n=o[A+1]-d[A+1],h=o[A+2]-d[A+2],r=.29889531*i+.58662247*n+.11448223*h,f=.59597799*i-.2741761*n-.32180189*h,l=.21147017*i-.52261711*n+.31114694*h;if(r*r*.5053+f*f*.299+l*l*.1957>D){F[e+L[t]]++,I++;const i=Math.abs(r);_+=i,y[v]=(r>0?P:k)+(Math.min(192,8*i)<<24),0===T&&(E=a),T+=a}}v+=G}if(T-=E,_/=256,i.enableMinimap)for(let t=0;t<B*z;t++){if(F[t]>0){const e=t/B|0,a=256*(t%B),i=Math.min(a+256,n),r=256*e,d=Math.min(r+256,h);v=a+r*H+G;const o=H-i+a;for(let t=r;t<d;t++){for(let t=a;t<i;t++)y[v++]|=1082064896;v+=o}}}return _>i.cumulatedThreshold?{diff:I,cumulatedDiff:_,hash:T}:{diff:0,cumulatedDiff:0,hash:0}};exports.diff=(t,e,a,i,n,h)=>(0,exports.diffImageDatas)({width:i,height:n,data:t},{width:i,height:n,data:e},{width:i*a.length/t.length,height:n,data:a},h); | ||
| Object.defineProperty(exports,"__esModule",{value:!0}),exports.diff=exports.diffImageDatas=void 0;exports.diffImageDatas=(t,e,a,i)=>{void 0===i.threshold&&(i.threshold=.03),void 0===i.cumulatedThreshold&&(i.cumulatedThreshold=.5),void 0===i.enableMinimap&&(i.enableMinimap=!1);const{width:n,height:h}=t,r=n*h,d=t.data,o=e.data,f=a.data,l=d.length,s=o.length,c=f.length;if(n!==e.width||h!==e.height||4*r!==l||l!==s)throw new Error("Different baseline and candidate ImageData dimensions");const m=a.width/n,u=c/l;if(a.height!==h||m!==u||1!==m&&3!==m)throw new Error("Invalid diff ImageData dimensions");const w=c===l?1:2,g=d.buffer,M=o.buffer,p=f.buffer,b=new Uint32Array(g,0,l>>2),x=new Uint32Array(M,0,l>>2),y=new Uint32Array(p,0,c>>2),D=i.threshold*i.threshold*35215;let A=0,U=0,v=0,I=0,T=0,E=0,_=0,j=0;const q=Math.ceil(Math.sqrt(r)/128),C=l/q&-4;for(let t=0;t<q;t++)j+=(.299*(d[A]+o[A])+.587*(d[A+1]+o[A+1])+.114*(d[A+2]+o[A+2]))/q/2,A+=C;const O=j<128,P=O?1057016832:1056964863,k=O?1056964863:1057016832;A=0;const z=Math.ceil(h/128),B=Math.ceil(n/128),F=new Uint8ClampedArray(B*z),G=2===w?n:0,H=2*G+n,J=Math.max(n,h),K=Math.max(B,z),L=new Uint32Array(J);let N=0;for(let t=0;t<K;t++)L.fill(t,N,Math.min(N+128,J)),N+=128;for(let t=0;t<h;t++){const e=L[t]*B;G>0&&(y.set(new Uint32Array(g,A,n),v),v+=n,y.set(new Uint32Array(M,A,n),v+n));let a=4034073399*(4034073399^t);for(let t=0;t<n;t++,v++,U++,A+=4,a++){if(b[U]===x[U])continue;const i=o[A]-d[A],n=o[A+1]-d[A+1],h=o[A+2]-d[A+2],r=.29889531*i+.58662247*n+.11448223*h,f=.59597799*i-.2741761*n-.32180189*h,l=.21147017*i-.52261711*n+.31114694*h;if(r*r*.5053+f*f*.299+l*l*.1957>D){F[e+L[t]]++,I++;const i=Math.abs(r);_+=i,y[v]=(r>0?P:k)+(Math.min(192,8*i)<<24),0===T&&(E=a),T+=a}}v+=G}if(T-=E,_/=256,i.enableMinimap)for(let t=0;t<B*z;t++){if(F[t]>0){const e=t/B|0,a=128*(t%B),i=Math.min(a+128,n),r=128*e,d=Math.min(r+128,h);v=a+r*H+G;const o=H-i+a;for(let t=r;t<d;t++){for(let t=a;t<i;t++)y[v++]|=545193984;v+=o}}}return _>i.cumulatedThreshold?{diff:I,cumulatedDiff:_,hash:T}:{diff:0,cumulatedDiff:0,hash:0}};exports.diff=(t,e,a,i,n,h)=>(0,exports.diffImageDatas)({width:i,height:n,data:t},{width:i,height:n,data:e},{width:i*a.length/t.length,height:n,data:a},h); |
+1
-1
@@ -23,3 +23,3 @@ { | ||
| ], | ||
| "version": "1.3.1", | ||
| "version": "1.3.2", | ||
| "scripts": { | ||
@@ -26,0 +26,0 @@ "build": "tsc && terser ./dist/index.js -c -m --module -o ./dist/index.js" |