ヤッチマイナシコ

たまには気分を変えよう

ナシコ
  • 1008
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  

5/26

Zend_Amf_Server x FlashのBMPを保存

昨日に引き続き、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

コメント一覧 (0) コメントを書く

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

コメント投稿

Name
E-mail
E-mail
Comment

Powered by WP Hashcash

Spam Protection by WP-SpamFree

CopyRight 2004 ヤッチマイナシコー! All rights reserved.

Powerd By neustil.com