ZAPAnet総合情報局 > ZAPAブログ2.0 > Flashの内容を画像に変換する方法

Flashの内容を画像に変換する方法

2007年04月05日 プログラミングTIPS
円グラフコミュニティサイト みんなのグラフ(verβ)作者の松本圭司さんからトラックバックがありました。
Keiziweb. ver β - 「みんなのグラフ」開発裏話。
3D円グラフを作る上で苦労したこと、捨てたものなど」と同じような悩みを抱えていたそうで、とても興味深い内容が書かれています。

「円」という最も芸術的に美しい形の一つを、きれいに表現できないことは、技術者にとっても悩みの種です。
松本さんは、Flashを用いることにより、円グラフの美しさを追求しています。
欠点として、Flashでしか表示できないので、画像ファイルに比べると汎用性が低くなる点があります。

だったら、Flashの内容を画像に変換すれば良いのでは?

と思ったので、Flashの内容を画像に変換する方法を調べてみました。

1.BitmapDataをサーバーに送信し、1ピクセルずつ処理

ActionScriptのBitmapDataクラスを使って、ビットマップデータを生成すれば画像の元データが作れます。
getPixelメソッドを用いれば、各ピクセルの色情報を取得することも可能です。
このデータをサーバーに送信して、サーバー側でBMPデータを生成した後、PNG画像などに圧縮して保存すれば完成です。
PHPであれば、imagesetpixel関数を使って、1ピクセルずつ色情報をセットしていけばOKです。

ですが、全ピクセルデータの送受信と1ピクセルずつのデータ処理は、サーバーへの負担となってしまいます…。

参考サイト
X-LABO: Flashステージ上の表示を画像データに
noughts::blog:: ≫ Blog Archive ≫ 画像ダウンロード機能
imagesetpixel
dev.convexstyle.net: YouTube - snapshot (1)
dev.convexstyle.net: YouTube - snapshot (2)


2.Flash側でBitmapDataをPNGやJPEGにエンコード

他に何か方法は無いのか調べてみたところ、Flash側でBMPデータをエンコードする方法が見つかりました。
BitmapDataをPNGやJPEGにエンコードする方法が載っていました。

参考サイト
フラッシュの画像を保存 (ActionScripter.info)
kaourantin.net: PNG Encoder in AS3
BitMapDataをJPEGにエンコード:nod::ぶろぐ::RIA::Flash/Flex/Ajax
Make screenshots, filter and output as jpg from Flash 8


3.RemoteObjectASからリモートオブジェクトを叩く

はてなでは、「RemoteObject」を使ったサンプルが載っていました。

参考サイト
機能変更、お知らせなど - はてな技術発表会日記
サーバーとの通信 第4回 RemoteObject を利用する(1) - データをサーバーから受け取る
Flex2でJavaのRemoteObjectにアクセスしてみる(3):nod::ぶろぐ::RIA::Flash/Flex/Ajax


4.ColdFusionコンポーネントを使う

ColdFusionコンポーネントを使う方法もあるみたいです。

参考サイト
FLASH-JP.COM - フォーラムSWFからGif画像変換するソフト
Alagad.com
レイアウト作成システム - Flash サンプル
お絵かき掲示板 - Flash サンプル


5.最後に

もっと簡単に実現できるのかと思って調べてみましたが、少し面倒な手順を踏まないと「Flashの内容を画像として保存」することはできないみたいです。

グラフ作成に悩んでいる方は他にもいたようで、ITproではグラフ生成ライブラリの紹介もされていました。
adamstation - 100字式 | 3D円グラフの裏側
【PHP TIPS】 24. グラフ生成ライブラリの紹介(1):ITpro

今回は4つの方法しか見つけられませんでしたが、他にもっと何か良い方法を知っている方がいましたら、情報提供していただけると助かります。



関連リンク

超かんたん3D円グラフ作成!
超かんたん3D円グラフ作成!作りました
タグクラウドよりも、べつやくメソッド!
3D円グラフを作る上で苦労したこと、捨てたものなど
ActionScript3.0の速さを体感してみよう!
FLASHだって検索結果1位を目指せます!-SEO実験結果-
「Webデザインで特に注意すべき10のヒント」の間違い
もしかしてAdobeの時代が来るのか?
Flashは検索エンジンに引っかからないという思い込み
Flex2,ActionScript3.0が優れている9の理由とAjaxとの差
はじめてのActionScript3.0プログラミング
窓の杜 - 【NEWS】ファジーな円グラフで感想や気分を表現する「べつやくメソッドクリエーター」