GMU:Processing im Park/Emilio Aguas/sample code test06

From Medien Wiki

--- Processing3.0 Code---

Moving the mouse and show me the image

int photos = 2; //maximum of photos
int index = 0; // first image
PImage[] pics = new PImage[photos]; //images array

void setup() {
  size (800, 600);
  background (150);
  smooth ();
  noStroke();
  //load the images into the array
  for (int i = 0; i < pics.length; i++ ) {
    pics[i] = loadImage ("IMG_024"+ (i+2) + ".jpg");
  }
}

void draw () {
  loadPixels();

  //load the pixels of every image
  pics[index].loadPixels() ;

  //moving through the pixels in two dimensions
  for (int x =0; x <  pics[index].width; x++) {
    for (int y =0; y <  pics[index].height; y++) {

      //position of the pixels in one dimension
      int pixel_Loc = x + (y * pics[index].width);

      //take the r,g.b values from the image pixel by pixel
      float red = red (pics[index].pixels [pixel_Loc]);
      float green = green (pics[index].pixels [pixel_Loc]);
      float blue = blue (pics[index].pixels [pixel_Loc]);

      //change the brightness according to the proximity of the mouse
      float flash = dist (x, y, mouseX, mouseY);//using dist function with the 4 values points in X and Y coordinates
      float flashLightX = (100-flash) / 100;// change the values for filters or the "100" for the size of the flashlight
      float flashLightY = (100-flash) / 100;
      red *= flashLightX;
      green *= flashLightY;
      blue *= flashLightX;

      // Constrain rgb values
      red = constrain (red, 0, 255);
      green = constrain (green, 0, 255);
      blue = constrain (blue, 0, 255);

      //change the pixels for a new value
      color images = color (red, green, blue);
      pixels[pixel_Loc] = images;  
    }
  }
  //display the pixels
  updatePixels();
}

void mousePressed() {
  //change the image every time the mouse is clicked
  index = (index + 1) % pics.length;
}