Flashのキャプチャ画像をサーバに書き出してみる

最近はiPhoneを持っている人が大変多くなりましたね。
Flash制作者としては一時期は肩身も狭いくらいでした笑
(とはいうものの僕もiPhoneユーザだったりしますが)

皆さんご存知のとおりiPhoneではFlashを見ることはできません。
代替画像を用意して表示することも多いのではないでしょうか?
しかし、コンテンツによっては見る度に表示が変わるなど、
何度もアクセスさせるために工夫をしているようなものもあるはず。

今回はFlashを表示する度に画面をキャプチャして
サーバの画像を更新することはできないかと考えました。

ver10のbyteArrayとPHPを使って再現してみましたのでデモを見てみて下さい。

デモ

Flash側で自分のキャプチャ画像を作り、PNGデータを作成。
PNGデータをバイナリデータにしてPHPにPOSTで送信しています。

var _bmd:BitmapData = new BitmapData(width, height, true, 0x00000000);
_bmd.draw("キャプチャターゲット", null, null, null, new Rectangle(0, 0, width, height));

var _byteArray:ByteArray = PNGEncoder.encode(_bmd);

var _urlRequest:URLRequest = new URLRequest("PHPのパス");
_urlRequest.contentType = "application/octet-stream";
_urlRequest.method = URLRequestMethod.POST;
_urlRequest.data = _byteArray;

var _urlLoader:URLLoader = new URLLoader();
_urlLoader.load(_urlRequest);

PHP側で受け取ったバイナリをPNG画像に保存。

<?php
	$fileName = "test.png";
	$file = fopen($fileName, 'wb');
	fwrite($file, $GLOBALS&#91;'HTTP_RAW_POST_DATA'&#93;);
	fclose($file);
?>

意外に簡単に出来たのでぜひ試してみてください。
PNGEncoder の変わりにJPGEncoder を使えばJPG保存も出来ますよ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

This blog is kept spam free by WP-SpamFree.