昨日に引き続き、Zend_Amf_Serverを使ってデータ送信です。
今日はイメージの保存をやってみました。
BMP保存と書いていますが正確にはPNGとして保存するんですけどね。
イメージデータの保存がこれほど単純に作れるとは恐ろしいです。
今まであーだーこーだ思いながら作ってたのに><
PNGを保存するPHP
<?php
require_once('Zend/Amf/Server.php');
$server = new Zend_Amf_Server();
$server->setClass('Image');
$response = $server->handle();
echo $response;
class Image
{
/**
* @param string name
* @param array data
* @return boolean
*/
public function pngsave($name, $data)
{
$success = false;
if( !is_null($name) && $fp = fopen($name.".png", "w+") )
{
fwrite($fp, $data);
fclose($fp);
$success = true;
}
return $success;
}
}
?>
BmpをPNGに変換して送信
import flash.net.NetConnection;
import flash.net.Responder;
import com.adobe.images.PNGEncoder;
var gateway:String = "http://localhost/zend_amf_img/zend_amf_img.php";
var connection:NetConnection = new NetConnection();
var responder:Responder = new Responder(onResultHandler, onFaultHandler);
connection.connect(gateway);
var bmpd:BitmapData = new BitmapData(200,200,true,0x00000000);
bmpd.draw(this);
var imgByte:ByteArray = PNGEncoder.encode( bmpd );
// phpCall, response, 保存ファイル名, 送信イメージデータ
connection.call("Image.pngsave", responder, "filename", imgByte);
function onResultHandler(evt:Object):void
{
trace(String(evt));
}
function onFaultHandler(evt:Object):void
{
trace(String(evt));
}
これだけです。PHPの処理が適当すぎますが保存はできます。
AS3のPNGEncoderはググルとでてきます。
お手軽っすな〜?。
ダウンロードはこちらから
2009/5/26 - 23:26 | Comments (0)
Category : FLASH AS3


コメントはまだありません。