Processing/3.ライブラリの利用/2.ビデオライブラリ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#navi(Processing/3.ライブラリの利用)
* 3-2 ビデオライブラリ [#bc7f9f31]
VideoライブラリはファイルやWebカメラからの動画を扱うこと...
次の例は動画ファイルを読み込んで、それを表示する。動画の...
mov.loop()は動画を繰り返し再生する。その代わりにmov.play(...
import processing.video.*;
Movie mov;
void setup(){
size(640, 360);
mov = new Movie(this,"z:/Videos/douga.mp4");
mov.loop();
}
void draw(){
if( mov.available() ){
background(0);
mov.read();
image( mov, 0, 0, width, height );
}
}
上の例では、画面の大きさに合わせて動画を拡大・縮小して表...
Processingの現バージョンでは、size()に変数を指定できない...
もし、プログラム上で画面の大きさを動画の大きさに合わせた...
import processing.video.*;
Movie mov;
void setup(){
size( 200, 200 );
mov = new Movie(this,"z:/Videos/douga.mp4");
mov.loop();
surface.setResizable( true );
while( !mov.available() ){
delay( 10 );
}
mov.read();
surface.setSize( mov.width, mov.height );
mov.jump( 0 );
surface.setResizable( false );
}
void draw(){
if( mov.available() ){
background(0);
mov.read();
image( mov, 0, 0, width, height );
}
}
Image(mov,...)で画像を表示する代わりに、画像処理を行うこ...
特に設定しなければ、動画と画面の大きさが異なるので、x = i...
import processing.video.*;
Movie mov;
int block = 20;
void setup(){
size( 400, 300 );
mov = new Movie(this, "z:/Videos/douga.mp4");
mov.loop();
}
void draw(){
int x, y;
if( mov.available() ){
background(0);
mov.read();
noStroke();
for( int i=0; i<width; i+=block ){
for( int j=0; j<height; j+=block ){
x = int( map(i, 0, width, 0, mov.width) );
y = int( map(j, 0, height, 0, mov.height) );
fill( mov.get(x, y) );
rect( i, j, block, block );
}
}
}
}
パソコンにカメラがついていれば、ファイルの代わりにカメラ...
import processing.video.*;
Capture cam;
void setup(){
size(640, 360);
cam = new Capture(this);
cam.start();
surface.setResizable( true );
surface.setSize( cam.width, cam.height );
surface.setResizable( false );
}
void draw(){
if( cam.available() ){
background(0);
cam.read();
image( cam, 0, 0, width, height );
}
}
MovieをCaptureに、loopまたはplayをstartに置き換えればよい。
終了行:
#navi(Processing/3.ライブラリの利用)
* 3-2 ビデオライブラリ [#bc7f9f31]
VideoライブラリはファイルやWebカメラからの動画を扱うこと...
次の例は動画ファイルを読み込んで、それを表示する。動画の...
mov.loop()は動画を繰り返し再生する。その代わりにmov.play(...
import processing.video.*;
Movie mov;
void setup(){
size(640, 360);
mov = new Movie(this,"z:/Videos/douga.mp4");
mov.loop();
}
void draw(){
if( mov.available() ){
background(0);
mov.read();
image( mov, 0, 0, width, height );
}
}
上の例では、画面の大きさに合わせて動画を拡大・縮小して表...
Processingの現バージョンでは、size()に変数を指定できない...
もし、プログラム上で画面の大きさを動画の大きさに合わせた...
import processing.video.*;
Movie mov;
void setup(){
size( 200, 200 );
mov = new Movie(this,"z:/Videos/douga.mp4");
mov.loop();
surface.setResizable( true );
while( !mov.available() ){
delay( 10 );
}
mov.read();
surface.setSize( mov.width, mov.height );
mov.jump( 0 );
surface.setResizable( false );
}
void draw(){
if( mov.available() ){
background(0);
mov.read();
image( mov, 0, 0, width, height );
}
}
Image(mov,...)で画像を表示する代わりに、画像処理を行うこ...
特に設定しなければ、動画と画面の大きさが異なるので、x = i...
import processing.video.*;
Movie mov;
int block = 20;
void setup(){
size( 400, 300 );
mov = new Movie(this, "z:/Videos/douga.mp4");
mov.loop();
}
void draw(){
int x, y;
if( mov.available() ){
background(0);
mov.read();
noStroke();
for( int i=0; i<width; i+=block ){
for( int j=0; j<height; j+=block ){
x = int( map(i, 0, width, 0, mov.width) );
y = int( map(j, 0, height, 0, mov.height) );
fill( mov.get(x, y) );
rect( i, j, block, block );
}
}
}
}
パソコンにカメラがついていれば、ファイルの代わりにカメラ...
import processing.video.*;
Capture cam;
void setup(){
size(640, 360);
cam = new Capture(this);
cam.start();
surface.setResizable( true );
surface.setSize( cam.width, cam.height );
surface.setResizable( false );
}
void draw(){
if( cam.available() ){
background(0);
cam.read();
image( cam, 0, 0, width, height );
}
}
MovieをCaptureに、loopまたはplayをstartに置き換えればよい。
ページ名: