6月 042007
<< Perl – Imagerで写真に半透明ロゴを入れる || 浮き箸 >>
C#でDirectXからwebcamを使うのがめんどいので、processingにwebcam captureさせてC#に戻す様にした。
まず、s.h.log: Proce55ingでwebcam撮影、ファイルに保存をSocketから操作できるようにしてみた。
Source Code (Processing 0124 Beta)
socketで5800portに p を1文字送れば撮影してjpegで保存する。
ついでにC#用のwrapperも作った。
こんな感じで撮影できる。
usingOrg.Shokai.Util.Capture;
ProcesingSocketCamerap5cam=newProcesingSocketCamera();
p5cam.Host=”localhost”;
p5cam.Port=5800;
if(!p5cam.Connected)p5cam.Connect();p5cam.Capture();
jpegファイルの生成をFileSystemWatcher等で監視しておけばよい。
ただし、saveFrame()は生成したファイルに追記している様なので、FileSystemWatcherのCreateイベント直後に読み込むとファイルサイズ0のjpegファイルになってしまう。
FileCreateイベント後に
FileInfo fInfo;
while (!( (fInfo=new FileInfo(e.FullPath)).Length > 0)) ;
とかで待機してから、C#側から読み込んだらうまくいった。