// Skrolli 2018.3: Rikotut kuvat (glitch art) PImage img; //objekti valokuvaa varten void setup() { //Lataa valokuva muistiin ja hae pikseli-taulukko img = loadImage("FileName.jpg"); img.loadPixels(); for (int row = 1; row < img.width-1; row++) { for (int line = 1; line < img.height-1; line++) { int loc = row + line * img.width; //Pikselin paikka pikselitaulukossa //Solu S1 on (loc - img.width), solu S2 on (loc + img.width) ja solu K on loc + 1. //Jos S1:n kirkkaus on suurempi kuin S2:n, kopioi solun A väri soluun K ja lisää 5% hueen. if (brightness(img.pixels[loc - img.width]) > brightness(img.pixels[loc + img.width])) { colorMode(HSB, 255); //Ota käyttöön HSB-värimalli arvovälinä 0-255 float h = hue(img.pixels[loc]) * 1.05; float s = saturation(img.pixels[loc]); float b = brightness(img.pixels[loc]); img.pixels[loc + 1] = color(h, s, b); //Jos S2:n punainen komponentti on suurempi kuin S1:n, kasvata K:n punaisen komponentin arvoa 15%:lla } else if (red(img.pixels[loc + img.width]) > red(img.pixels[loc])) { colorMode(RGB, 255); //Ota käyttöön RGB-värimalli arvovälinä 0-255 float r = red(img.pixels[loc + 1]) * 1.15; float g = green(img.pixels[loc + 1]); float b = blue(img.pixels[loc + 1]); img.pixels[loc + 1] = color(r, g, b); //Jos S1:n vihreä-komponentti on suurempi kuin S2:n sininen-komponentti, muuta K:n punainen-komponentti A:n kirkkaudeksi ja lisää 2. } else if(green(img.pixels[loc - img.width]) > blue(loc + img.width)) { colorMode(HSB, 255); //Ota käyttöön HSB-värimalli arvovälinä 0-255 float h = hue(img.pixels[loc]); float s = saturation(img.pixels[loc]); float b = brightness(img.pixels[loc]) + 2; img.pixels[loc + 1] = color(h, s, b); } else { //Muuten aseta K:n väriksi A:n ja K:n keskiarvo colorMode(RGB, 255); //Ota käyttöön RGB-värimalli arvovälinä 0-255 float r = (red(img.pixels[loc]) + red(img.pixels[loc + 1]))/2; float g = (green(img.pixels[loc + 1]) + green(img.pixels[loc + 1]))/2; float b = (blue(img.pixels[loc + 1]) + blue(img.pixels[loc + 1]))/2; img.pixels[loc + 1] = color(r, g, b); } } } img.updatePixels(); //Päivitä kuvan pikselitaulukko img.save("result.jpg"); //Talleta kuva exit(); //Lopeta ohjelma. Automaattisesti luotu ikkuna suljetaan ja siitä tietää että ohjelman suoritus on loppunut. }