d = ctx.getImageData(0, 0, 128, 128).data;
c = [[255,0,0],[255,69,0],[255,165,0],[255,215,0],[255,255,0],[154,205,50],[0,255,0],[0,128,0],[64,224,208],[30,144,255],[0,0,255],[75,0,130],[238,130,238],[255,192,203],[0,0,0],[255,255,255]];
a = [];
n = k => [k - 1, k, k + 1];
z = (a, b) => a.map((v, i) => [v, b[i]])
for(i = 0; i < d.length; i += 4){
v = [d[i],d[i+1],d[i+2]];
g=0;
for (let k of c) {
if(z(k, v).every(([a,b]) => n(a).includes(b))){
a.push(g);
break;
}
g++;