- ベストアンサー
ユーザー作成画像データのサーバーへの送信
- ユーザー作成画像データのサーバーへの送信について
- Flashでのお絵かきツールのデータ送信手順
- 画像データとしての送信が可能かどうか
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
面白いことを考えていらっしゃるのですね。 そんなこと考えもしなかったです。 Flashプレーヤー(プラグイン)の機能としては当然そんな画像データを作るような機能はないわけですから, Flashプレーヤーにそういう作業を求めることは不可能だと思います。 それとFlashが外部にはき出すのは"テキスト"データだけです。 それも,変数と言う形で。 ファイルを作るわけではありません。テキストデータを何処かに送るだけです。 でも,絶対に無理かな… としばらく考えていました。 Flashには,getRGB()とか,setRGB()とかいうスクリプトが存在します。 「Macromedia Flash MX 2004 日本語版例文辞典」(参考URL↓) に,それの説明とわかりやすいサンプルを置いてくれてあります。 オブジェクトの色を変えたり,取得したりすることは可能です。 ちなみにWindowsのペイントで, 赤赤赤 緑緑緑 青青青 という,9ポイントだけの小さなBMPファイルを作成してみました。 当然,バイナリデータですから,テキストエディタでは開けません。 でもバイナリエディタを使うと,16進数のデータを見ることができます。 開くと, 42 4D 5A 00 00 00 00 00 00 00 36 00 00 00 28 00 00 00 03 00 00 00 03 00 00 00 01 00 18 00 00 00 00 00 24 00 00 00 C4 0E 00 00 C4 0E 00 00 00 00 00 00 00 00 00 00 FF 00 00 FF 00 00 FF 00 00 00 00 00 00 FF 00 00 FF 00 00 FF 00 00 00 00 00 00 FF 00 00 FF 00 00 FF 00 00 00 というデータになっていました。 14bitのビットマップは無圧縮のRGBデータです。データの並びはBGRの順です。 上のを改行で見やすくすると, ↓ヘッダ部分 42 4D 5A 00 00 00 00 00 00 00 36 00 00 00 28 00 00 00 03 00 00 00 03 00 00 00 01 00 18 00 00 00 00 00 24 00 00 00 C4 0E 00 00 C4 0E 00 00 00 00 00 00 00 00 ↓パレット部分 00 00 FF 00 00 FF 00 00 FF 赤赤赤 00 00 00 00 00 00 FF 00 00 FF 00 00 FF 00 緑緑緑 00 00 00 00 00 FF 00 00 FF 00 00 FF 00 00 青青青 00 と言うことがわかります。 Flashは16進数でのデータは送ることができませんが, これをテキストに変えれば(上にように),送れるのではないでしょうか。 絵を描く方法も,少し手順が変わるかもしれませんが, 1ピクセルのオブジェクトを,ステージ上にビッシリ埋め尽くしように配置し, マウスが触れるとsetRGB()で何某かの色をオブジェクトに与え, 最終的には,getRGB()で全オブジェクトの色データを取得し, 「00FF00」,「FF99FF」,「006699」… みたいなデータを取得すれば,サーバに画像データに近い物(でもテキストデータ)が送れるのではないでしょうか。 それで,そのテキストをサーバでバイナリに変換する。 でも,それ,作るだけでかなりシンドイですね。 質問者さまがおっしゃってる,普通のやり方? の方が楽で,データもはるかに軽い気がします。 以上,全く参考になりそうもない話でした。
お礼
sassakunさん,回答ありがとうございます。あれから色々調べたのですが,自分が言っているようなメソッドはないみたいです。確かに「プラグイン」であるPlayerに,そこまで求めるのはきついかなとも思いますね。でも,あれば便利だと思うのですが。FlashMX2004だと,SWFをJPEGで出力とか出来るのでもしかしたらと思った訳です。素直にサーバーサイドで実装しますね。 それにしても,setRGB()を使うやり方は,原理的には可能のようで発想は面白いですね。すべてのピクセル毎のオブジェクトデータ,PS3なら現実的かもしれませんね。ちょっと小さいやつで試してみたくなります:)