Daily Creative Coding

元「30 min. Processing」。毎日、Creative Codingします。

画像処理の基礎3

画像を重ねる(多重露光する)

f:id:aa_debdeb:20151028133439j:plain
/**
* Multiple Exposure
*
* @author aa_debdeb
* @date 2015/10/29
*/

void setup(){
  size(640, 424);
  PImage image1 = loadImage("image1.jpg");
  PImage image2 = loadImage("image2.jpg");

  image(image1, 0, 0);
  tint(255, 255, 255, 128);
  image(image2, 0, 0);
}[f:id:aa_debdeb:20151028133452j:plain]

特定の色だけを残してモノクロにする

f:id:aa_debdeb:20151028133452j:plain
/**
* Monochrome Image With One Color
*
* @author aa_debdeb
* @date 2015/10/29
*/


void setup(){
  size(512, 512);
  noStroke();
  PImage image = loadImage("lena.jpg");
  image(image, 0, 0);

  loadPixels();
  for(int x = 0; x < width; x += 1){
    for(int y = 0; y < height; y += 1){
      color c = pixels[y * width + x];
      float distance = abs(red(c) - 138) + abs(green(c) - 43) + abs(blue(c) - 226);
      if(distance > 160){
        float grey = 0.30 * red(c) + 0.59 * green(c) + 0.11 * blue(c);
        pixels[y * width + x] = color(grey, grey, grey);
      }
    }
  }
  updatePixels();
}