2012-02-22 15 views

答えて

10

を使用してのJPEGとして保存するフラッシュAS3のための方法はありますがされています確かに... Googleで検索しよう...たくさんの方法があります。それはあなたが標準的なフラッシュクラスで大丈夫と仮定しています。文字通りクラスがない場合、あなたには幸運があります。

これを行う方法の1つがここにあります。

var jpgEncoder:JPGEncoder; 
jpgEncoder = new JPGEncoder(90); 

次あなたが最初で、ステージをエンコード:flash-php-upload

は基本的に重要なポイントは、あなたがこのようなJPEG(あなたもしたい場合は、PNGを行うことができます)あなたのイメージをコードするJPEGエンコーダを作成しています

var bitmapData:BitmapData = new BitmapData(stage.width, stage.height); 
bitmapData.draw(stage, new Matrix()); 

img = jpgEncoder.encode(bitmapData); 

は今、あなたはあなたが保存するようにユーザーに促すために次の操作を行うことができます使用している点滅ものに応じて:そのecoding、ビットマップにそのデータを描画

それともあなたは、次の操作を行うことができ、それをサーバに保存する場合:

var sendHeader:URLRequestHeader = new URLRequestHeader("Content-type","application/octet-stream"); 
var sendReq:URLRequest = new URLRequest("path-to-php.php"); 

sendReq.requestHeaders.push(sendHeader); 
sendReq.method = URLRequestMethod.POST; 
sendReq.data = img; 

var sendLoader:URLLoader; 
sendLoader = new URLLoader(); 
sendLoader.addEventListener(Event.COMPLETE, imageSentHandler); 
sendLoader.load(sendReq); 

そして次にPHPファイルを必要とする:

<?php 
if (isset ($GLOBALS["HTTP_RAW_POST_DATA"])) { 
$filename = "filename.jpg"; 
$fp = fopen($filename,"wb"); 
fwrite($fp, $GLOBALS[ 'HTTP_RAW_POST_DATA' ]); 
fclose($fp); 
echo "filename=".$filename."&base=".$_SERVER["HTTP_HOST"].dirname($_SERVER["PHP_SELF"]); 
} 
?> 

Iことに注意してください。このコードではエラーをテストしていませんが、一般的な考えは正しいので、それを使用してプログラムに必要な変更を加えることができるはずです。

+0

簡単な質問:var img(img = jpgEncoder.encode(bitmapData);)はどのような変数タイプにする必要がありますか? img:私のためにファイルが機能しませんでした。ありがとう。 – tamak

+0

'img:ByteArray'を試してください –

関連する問題