ActionScriptは分かりますので、ざっくりのアルゴリズムを教えてください。
何となくぼやーと考えたのは以下です。
1.{どのチョーク、黒板消しをつかうか、座標、強さ?}を、毎秒数回保持していって、最後にその配列か何かをDBに保存している
2.出来上がった画像は、ビットマップとして、サーバサイドでファイル化してサムネール用などに使う
「1の毎秒数回保持していって~」のところなんですが、
そんな方法では処理の負荷が高いのかなと思ってしまうので、もっと違うのかなと考えています。
こくばん.in程のクオリティでなくても、単に線を描くのを再生できるようなもので結構ですので、
上のようなざっくりの流れを教えてください。
当方Flashは専門外ですがこのような一般的なお絵かきソフトの話です。
概ね正しいと思いますが、通常は毎秒保存するのではなくマウス移動時ですね。
一定時間間隔だとどれだけ時間を短くしても取りこぼしの可能性は捨てきれませんし、仰るように処理の負荷が高すぎます。
従って、描画の時の操作=マウスの移動時に画面に描画しながら同時に保持していきます。
普通だとマウス移動時でなおかつマウスボタンが押されている時が描画時ですからこの時に保持していきます。
> ポイントを取っておくのかが必要ではないのですか?
ポイントというのが画面の位置のことであればそうです。
普通は画像はとっておきません。画像データは保存するにはサイズが大きすぎ、保存する時間もかかるからです。
ただし、サムネイル用などに完成時の画面だけを保存することはあると思います。
お絵かき時のマウス移動時に例えば画面のどこからどこまで何色のチョーク(黒板消し)で動かしたかを保存しておきます。
リプレイ時にはそれを一定時間間隔で順番に再現するだけです。
直線なら、2点あればいいと思いますが、こまかな曲線もあることを考えると、全部の点を取っているということになるのかなと考えています。
たとえ真っ直ぐ長い直線を描いても長い直線の端点だけを持っているのではなく短い線の集まりで、
やはりそれら全ての端点を保存します。
それでも画面の画像を保存するよりは遥かに少ないデータで済みます。