2021年11月1日 星期一

week05

今天第一堂課老師先教我們使用Processing寫程式播放影片 

先到libraries裡找到video|GStreamer-based video library for Processing並下載


之後可以到左上角檔案>範例>video>loop
就可以開啟loop的範例檔案

然後我們就可以自己寫一個播放影片的程式了





import processing.video.*;
Movie movie;
void setup(){
  size(640,480);
  movie = new Movie(this,"launch2.mp4");
  movie.loop();
}
void draw(){
  image(movie,0,0);
}
void movieEvent(Movie m){
  m.read();
}
之後我們用攝影鏡頭

import processing.video.*;
Capture cam;
void setup(){
  size(640,480);
  cam=new Capture(this,640,480);
  cam.start();
}
void draw(){
  if (cam.available()) {
    cam.read();
   }
  image(cam,0,0);
  saveFrame();
}
在最後面加上saveFrame就可以把視訊內容錄下來了


之後再用第一堂課教的播放影片程式
就可以把剛剛錄下來的影片播放出來


點一下滑鼠就會自動存取畫面


void setup(){
  size(640,480);
  background(255,0,0);
}
void draw(){
  println(frameCount);
}
void mousePressed(){
  loadPixels();
  for(int i=0;i<640*480/2;i++){
    pixels[i]=color(0,255,0);
  }
  updatePixels();
  saveFrame();
}


最後一堂課我們就利用前幾堂課教過的所有程式
寫出一個可以播放影片,按一下滑鼠就會暫停並且變色的程式
import processing.video.*;
Movie movie;
color[]c={#F0F0F0,#FFF160,#FFC501,#FE9600,#03001C};
int now=0;
void setup(){
  size(640,480);
  background(#F0F0F0);
  movie = new Movie(this,"1234.mov");
  movie.play();
}
void draw(){
  if(movie.available()){
    movie.read();
    image(movie,0,0);
  }
}
void mousePressed(){
  movie.pause();
  loadPixels();
  for(int i=0;i<640*480;i++){
    float bright = brightness(pixels[i]);
    int now = 4-int(bright/67);
    pixels[i]=c[now];
  }
  updatePixels();
}









沒有留言:

張貼留言