アーカイブ
RailsにFlashからpostしたり取り出したりする
Railsのscaffoldでさくっと作ったインタフェースって、HTTP-POSTからSQLに保存したり取り出したりもできて色々プロトタイプを作るのに便利なのでまとめておく。
ためたデータの管理もできるし。
■Rails側の準備
まずrailsを入れる。
Macの人は既に入っているはず。Windowsなら、ActiveScriptRubyを入れてパス通すと、gemコマンドが入るのでgem install railsすればrailsコマンドが使えるようになる。DBはSQLiteのdll版をc:\windows\system32に入れればできる様になるはず。
railsでtestbbsというプロジェクトを作って、そこにscaffoldでentry(投稿)というmodelを作る。entryには、name(投稿者)とmessage(本文)が入る。
rails testbbs
cd testbbs
ruby script/generate scaffold entry name:string message:text
rake db:migrate
(単数形に注意)
webサーバーを立ち上げる
ruby script/server
http://localhost:3000/entriesから見れるようになっている。はず。(複数形に注意)
こんなページができている。ここからentryを増やしたり消したりもできる。

ここまでで、http://localhost:3000/entries/newから投稿できるのと、http://localhost:3000/entries.xmlから一覧を取得できるようになった。
→Source Code (Ruby on Rails 2.0.2)
■Flashから投稿する
HTTP POSTで行う。
今回作ったもの(動きます)
Source Code (AS3 / Flash CS3 + Flashdevelop)
今回もFlashDevelop上でAS3書いて、FlashCS3オーサリング/コンパイルした。
こいつでPOSTすると、http://localhost:3000/entriesに結果が出るようになる。

どうやってるかというとまず
http://localhost:3000/entries/newを見ると
Name
Message
という風にPOSTしているので、entry[name]とentry[message]をパラメータで渡せばいいとわかる。
AS3 – あらためてラベリング処理
火曜に、imglのうっちーとあらためてラベリング処理ってどうやんのよという話をしていて、あらためてAS3で書き直した。
ただし、ラベルの衝突処理はまだやっていない。
ラベリング処理について→s.h.log: Proce55ing – 2値化画像を4近傍ラベリング処理してパーツ抜き出し
今まで、ラベルそのものを2次元のint配列で管理してたけど、今回はBitmapDataオブジェクトとして保存する様にしてみた。BitmapDataならx,y座標で要素にアクセスできるし、ピクセルはuint型なので都合がいい。
■できたもの
download => fla, as, swf (FlashDevelop3.0.0 Beta5 + FlashCS3)
年末年始作ったカメラから画像処理のサンプルを元に改造した。
webcamから撮影してBitmapDataにして、1ピクセルずつ走査して真っ白(0x00FFFFFF)のピクセルを検出。
さらにラベリング処理をして、「ピクセルのかたまり」毎に番号をつける。
今回はノイズを飛ばしたりしていないので、右の本棚の小さな白にも反応してしまって28個とか検出される

Adobe AIRの開発環境を整えて、カメラで撮影してJPEGで保存するソフトを作った
AIRを使うと、flash.filesystemやflash.desktopなどのデスクトップアプリ用のクラス群が使えるようになるので、やってみた。
Air beta3で開発する環境を作って、前からやってみたかった
- 半透明で変な形をしたウィンドウ
- USBカメラで撮影してJPEGにエンコードしてファイル出力
-
を作った。
撮影した写真はプログラムと同じフォルダに保存される。
できたもの => CameraSaveJpeg.air (Adobe AIR beta3)、Archive

なお、半透明ウィンドウにするとスクリーンショットに写らなくなるので、デジカメで撮った。
■開発環境を整える
・Adobe Labs – Downloads: Adobe AIR
AIRの実行環境
・AIR:Flash CS3 Professional Update – Adobe Labs
Japaneseを選んでインストール
・Jinten Blog Blog Archive FlashDevelop Beta5
FlashDevelp3.0 Beta5で、AIRとmx系クラスのコード補完を有効にする方法
[Project]→[Properties]→[Compiler Options]→[Intrinsic Libraries]に
Library\AS3\frameworks\Flex3
Library\AS3\frameworks\AIR
を追加する
で、普通にFlashDevelopでFlash IDE用のプロジェクトを作成。
さらにFlashCS3からもAIRプロジェクトを作成。FlashDevelopと同じフォルダを指定する。
Flex3.0のコンパイラはとりあえず必要ない。
■証明書を作る
・AIR Beta2でWEBCAMの画像をjpgに保存するサンプル – hatayanlog
が詳しい。AIR Beta2から証明書を作らないとならなくなった。
AS3 – BitmapMirror.asでYouTubeを鏡写しにする
右下の「Load」を押して再生。
→ Source Code (Flash CS3 / AS3)
土善開発合宿(ゆーすけべー日記: 奥出研’07秋合宿@土善旅館に部外者(OB)の開発合宿も兼ねて参入してきた)で作ってたBitmapMirror.asを公開しておきます。
宴会直前に到着したのであんまり時間がなかったけど、今回やったことは3つ
1.YouTubeのビデオ(flv)をGoogleVideo経由で取得して
2.AS3のBitmapDataとして扱って
3.鏡面反射させる
ビデオはこれを読み込んでいます。ひゃあ゛ああああうまい゛いいいいい
■1.YouTubeのビデオをGoogleVideo経由で取得する
数ヶ月前にGoogleに買収されて以来、
http://www.youtube.com/watch?v=YRY0M5cgDG8
のビデオは
http://cache.googlevideo.com/get_video?video_id=YRY0M5cgDG8
から取れる様になりました。
以前はWebService::YouTubeを使って
スクレイピングしなければならなかったけど、素直になった。
Flash CS3 – 背景差分法
昨日Flash CS3を買ったので、さっそくAS3でやってみた。
自分で1からBitmapDataクラスを使うのは初めてだったけどprocessingやってたお陰ですぐわかった。
一旦カメラの前からどいて、Save Backgroundボタンを押してみてください






最近のコメント