Pixel Array

/** * Pixel Array. * * Click and drag the mouse up and down to control the signal and * press and hold any key to see the current pixel being read. * This program sequentially reads the color of every pixel of an image * and displays this color to fill the window. */ PImage* img; int direction = 1; float signal; void setup() { size(640, 360); noFill(); stroke(255); frameRate(30); img = loadImage("sea.jpg"); } void draw() { if (signal > img->width*img->height-1 || signal < 0) { direction = direction * -1; } if (isMousePressed()) { int mx = constrain(mouseX, 0, img->width-1); int my = constrain(mouseY, 0, img->height-1); signal = my*img->width + mx; } else { signal += 0.33*direction; } int sx = int(signal) % img->width; int sy = int(signal) / img->width; if (_keyPressed) { image(img, 0, 0); // draw the whole image point(sx, sy); rect(sx - 5, sy - 5, 10, 10); } else { color c = img->get(sx, sy); background(c); } }