目的
processingで今映っている画像を任意のキーボードを打つことによってpngで保存する。
重要な関数
keyPressed();
saveFrame("something.png");
の二つ。
使用例
/* * press 's'or'S' : save png */ void setup(){ size(800,600); background(0); } void draw(){ draw_ellipse(); } void keyPressed(){ if(key=='s'||key=='S')saveFrame("PNG"+"####"+".png");// Also, "PNG####.png" is OK. } void draw_ellipse(){ for(int i=0;i<5;i++){ float x,y; x=random(0,width); y=random(0,height); if(abs(x-(float)width/2)+abs(y-(float)height/2)>=height/2){ noStroke(); fill(255); ellipse(x,y,5,5); } } }
解説
void keyPressed(){ if(key=='s'||key=='S')saveFrame("PNG"+"####"+".png");// Also, "PNG####.png" is OK. }
ここがこのページの目的の部分である。
keyPressed(){}の関数はキーボード入力がされた時に実行される。
keyはキーボード入力が入る変数で、文字列であらわされる。
####はフレーム数が入る部分であり、デフォルトでは60fpsであるので、一秒で60増える。
余談だが、#の数を$n$とすると、累積フレーム数$f$が$f<n$の時、余った桁の#の部分に0が追加される。
そして、#の桁数以上のフレーム数になっても保存されるので大丈夫。