let img; let morphs = []; let count = 7; let size = 10; let countH = 400; let countV = 260; // Load the image function preload() { img = loadImage('/assets/mona-lisa.jpg'); for (let i = 0; i < count; i++) morphs[i] = loadImage(`/assets/morphs/${i}.png`); } function setup() { /* createCanvas(26*size, 40*size); imageMode(CORNER); for (let i = 0; i < 26; i++) { for (let j = 0; j < 40; j++) { image(morphs[1], i*size, j*size, size, size); } }*/ pixelDensity(1); // Display the image img.resize(0, countH); img.filter(GRAY); createCanvas(countV, countH); //createCanvas(countV*size, countH*size); image(img, 0, 0); loadPixels(); let pixels2d = new Array(countH); for(let i = 0; i < countH; i++){ pixels2d[i] = new Array(countV); } let i = 0; let j = 0; let str1 = ""; let pixels1d = []; for (let i = 0; i < pixels.length; i += 4) pixels1d[i/4] = pixels[i]; /* let averages = []; let sum = 0; for (let i = 0; i < pixels1d.length; i++) { sum += pixels1d[i]; if (i%10 == 0) { averages[i/10] = sum/10; sum = 0; } } */ let averages = new Array(countH); for (let i = 0; i < averages.length; i++) averages[i] = new Array(countV/10); let sum = 0; let sum2 = []; for(let k = 0; k < pixels1d.length; k++) { //str1 += str(pixels1d[k]%count); sum += pixels1d[k]; if (j%10 == 0) { averages[i][j/10] = sum/10; sum = 0; } pixels2d[i][j] = pixels1d[k]%count; j++; if (k%countV == 0 && k>0) { //str1 += '\n'; i++; j = 0; } } let sums = [] let averages2 = new Array(countH/10); for (let i = 0; i < averages2.length; i++) averages2[i] = new Array(countV/10); for (let i = 0; i < averages.length; i++) { for (let j = 0; j < averages[0].length; j++) { sums[j] += averages[i][j]; if (i%10 == 0) { averages2[i/10][j] = Math.round(sums[j]/10); if (!averages2[i/10][j]) averages2[i/10][j] = 0; averages2[i/10][j] %= 7; sums[j] = 0; } } } console.log(averages2); console.log(pixels1d); console.log(pixels2d); //saveStrings(str1.split('\n'), 'data.txt'); //resizeCanvas(countV*10, countH*10) fill(255); //rect(0,0,countV,countH); imageMode(CORNER); for (let i = 0; i < countV/10; i++) { for (let j = 0; j < countH/10; j++) { image(morphs[averages2[j][i]], i*size, j*size, size, size); } } describe('Mona lisa - by Davincci'); }