webadmin中西研のB4関口です。今回もProcessingネタになってしまうのですが、今回はProcessingを使ったビデオチャットを実装したいと思います。方針としては、画像をバイト配列に変換して、データグラム通信で別のPCへ送ってあげる感じにします。今回はわかりやすさのために、スレッドとか使いません。ソースを乗せてしまいます。*///描画image(receiveImage,0,0);image(capture,width-width/4,height-height/4,capture.width/4,capture.height/4);}[/java]横着して、catchではなにもしません。setup()具体的にsetup()内について見ていきます。DatagramPacket(buf,buf.length);[/java]ここで、受信ソケットのポートの設定をします(適当に5101番)。今回は、localhost内では2つアプリを起動することになるのですが、受信と送信ポートを互い違いにしないと動かないので注意です。(別のIPが振られてるところに飛ばすなら、全く同じアプリを起動させれば通信するはず)その下で受信したデータをどこに格納するかを指定します。用意しておいたbyte[]を渡すと、受信するたびにそこに値が入っていきます。InetSocketAddress(“localhost”,5100);[/java]ここで、送信先とポートを設定します。今回はlocalhostですが、普通にIPでも大丈夫です。[java]receiveSocket.setSoTimeout(1000);[/java]最後に受信のタイムアウトを設定します。今回は1000ミリ秒=1秒をタイムアウト時間に設定しました。これを指定してあげないと、受信データが来ない場合に永遠に待ち続けてしまうので、適当な値を指定してあげましょう。draw()次に描画部分です。loadImageMT(awtImage);[/java]凄く簡単ですね。receiveメソッドを呼んであげれば、予め設定しておいたbyte[]にバイト配列が格納されます。それをまずImageにしてあげて、さらにそれをPImageに変換してます。BufferedOutputStream(bos);[/java]まず、キャプチャ画像をBufferedImageにしてあげて、ストリームの準備をします。{}[/java]次にImageIOを使ってjpgに変換します。ストリームに流し込んで、byteArrayにしてあげます。DatagramPacketにbyte配列と宛先情報を渡して、それをDatagramSocket.send()すると送られます。いう感じで、Processingで簡単なビデオチャットが出来ます。コメントをキャンセルコメントを投稿するにはログインしてください。WordPress.。