Files
PozzettiAndrea-ComfyUI-Turn…/scripts/probes/pixels.js
T
2026-05-13 13:26:00 +02:00

25 lines
780 B
JavaScript

// Sample the canvas back via gl.readPixels.
const c = document.getElementById('canvas');
const gl = c.getContext('webgl2') || c.getContext('webgl');
const px = new Uint8Array(c.width * c.height * 4);
gl.readPixels(0, 0, c.width, c.height, gl.RGBA, gl.UNSIGNED_BYTE, px);
let nb = 0, max = 0, rSum = 0, gSum = 0, bSum = 0;
for (let i = 0; i < px.length; i += 4) {
const r = px[i], gg = px[i+1], b = px[i+2];
const m = Math.max(r, gg, b);
if (m > 30) nb++;
if (m > max) max = m;
rSum += r; gSum += gg; bSum += b;
}
return {
wh: [c.width, c.height],
nonBlackPx: nb,
totalPx: px.length/4,
max,
avg: [
+(rSum / (px.length/4)).toFixed(2),
+(gSum / (px.length/4)).toFixed(2),
+(bSum / (px.length/4)).toFixed(2),
],
};