JSFiddle - React, Tailwind, and code Playground
by eithe
JavaScript
function chunk(arr, n) {
return arr.reduce(function(p, cur, i) {
(p[i/n|0] = p[i/n|0] || []).push(cur);
return p;
},[]);
}
function grid(array, img)
{
var _ = [];
for (var i=0; i<array.length; i++)
{
var x = i % img.width;
var y = parseInt(i / img.width);
if (!_[x])
_[x] = [];
_[x][y] = array[i];
}
return _;
}
function pixelate(array, args)
{
var _ = [];
for (var i=0; i<array.length; i++)
for (var j=0; j<array[i].length; j++)
{
var x = i % args.width;
var y = j % args.height;
var _x = parseInt(i / args.width);
var _y = parseInt(j / args.height);
if (!_[_x])
_[_x] = [];
if (!_[_x][_y])
_[_x][_y] = {r: 0, g: 0, b: 0, i: 0, pixels: []};
if (!_[_x][_y].pixels[x])
_[_x][_y].pixels[x] = [];
array[i][j].r = array[i][j][0];
array[i][j].g = array[i][j][1];
array[i][j].b = array[i][j][2];
_[_x][_y].pixels[x][y] = array[i][j];
_[_x][_y].r += array[i][j][0];
_[_x][_y].g += array[i][j][1];
_[_x][_y].b += array[i][j][2];
_[_x][_y].i++;
}
for(var i=0; i<_.length; i++)
for(var j=0; j<_[i].length; j++)
{
_[i][j].r = parseInt(_[i][j].r / _[i][j].i);
_[i][j].g = parseInt(_[i][j].g / _[i][j].i);
_[i][j].b = parseInt(_[i][j].b / _[i][j].i);
}
return _;
}
function extend(_)
...