画像をドット化するスクリプト:Processing

Processingで読み込んだ画像をドット化し、PNG書き出すスクリプトを書きましたメモ。ちなみにドットは、四角じゃなくて円に変換してます。

Before

a

After

aDot

Processing コード

[java]
int NUM_BALL_X = 60;
int SIZE = 6;
PImage img;
String loadFile = "a.jpg";

void setup(){

img= loadImage(loadFile);

println("width:" + img.width + " height:" + img.height);

size(img.width,img.height,P3D);
background(0);
smooth();

img.loadPixels();
println("img.pixels.length:" + img.pixels.length);

float distanceOfBall = img.width / ((float)NUM_BALL_X);
int NUM_BALL_Y = int(NUM_BALL_X * img.height / (float)img.width);

println("distanceOfBall:" + distanceOfBall);

for( int i = 0 ; i < NUM_BALL_X ; i++){

for(int j = 0 ; j < NUM_BALL_Y ; j++){

int x = int(i * distanceOfBall + distanceOfBall/2.);
int y = int(j * distanceOfBall + distanceOfBall/2.);

color col= img.pixels[int(x + width * y)];
fill(col);
ellipse(x,y,SIZE,SIZE);
}
}

save(loadFile +"Dot.png");
}

[/java]

音楽に同期して、複数PCの動画をフレーム同期しながら再生するMaxパッチを開発:Cycling’74 Max, OSC

スクリーンショット 2013-09-04 21.21.43

少し前の話になりますが、動画クリエーターで裸眼立体視の研究者であるAono.Y氏に誘われて、天野喜孝xHYDE展 [天命と背徳~NIPPON EVOLUTION~]内のFVP(裸眼立体視が体験可能な映像展示)向けにMaxパッチを作成しました。Aono.Yさんお誘いありがとう!

要件

  • 音楽に同期して、複数PC(10台以上)の動画(しかも高解像度)をフレーム同期しながら再生する
  • 一日の連続稼働12時間

実装・感想

  • フルHD以上の動画再生だったので、はじめはC++系じゃないとキツイかな?と思ってたんですが、Maxで試作したらあっさり動いて驚きました。
  • フレームレート 開発機のMacでは出てたがWinにした途端に落ちて困った → 動画圧縮形式の変更で対応
  • フレーム同期はマスターパッチから、UDPで各PCに同期信号をガンガン送りました。結構適当なやり方してたんですが、テスト動画もバッチリ再生されました。ネットワーク構築に使ったY社のルーターが優秀という噂がw
  • 現場でコーディングや修正が発生しても、直しやすいのも良かった。Maxで開発するのは楽しい。
  • 12時間連続稼働でも、特に落ちたとかの報告が来なかったので、安定稼働していたみたい。