2012-01-06 61 views
0

我很難找到任何可以在運行時保存圖片的技巧。在運行期間從Flash應用程序保存圖像?

這是一個Flash應用程序,用戶可以在其中設計一些東西,然後將其發送給我(發給我)進行發佈(我認爲最好的方法是使用某種ActionScript爲其完成設計拍攝JPEG照片然後將其保存到我的Web服務器)。我搜索了一下,發現了一些例子,但是它們都沒有工作。

任何燈光都將不勝感激!

亞倫

+0

一般來說,你會得到你的包含MovieClip,JPEG編碼它的位圖數據,然後URLLoad它到您的服務器。同樣重要的是有一個服務器頁面來處理請求,你在服務器後端運行什麼? – ToddBFisher 2012-01-06 18:07:28

+0

http://stackoverflow.com/questions/2509554/fast-or-asynchronous-as3-jpeg-encoding - 我用這個expample從這個問題http://www.switchonthecode.com/tutorials/flex-tutorial-an-異步JPEG編碼器,前一段時間的應用程序,它像一個魅力 – Evert 2012-01-06 18:09:04

+0

@ToddBFisher我一直在使用PHP腳本從我的文件從應用程序傳輸到我的服務器,迄今爲止工作很好。我似乎無法得到JPEG編碼類或任何工作在Flash中。 – Aaron 2012-01-06 18:27:44

回答

0

這是我發現,當我工作的一個類似的項目最簡單的例子:

它需要安裝

https://github.com/mikechambers/as3corelib

的問題,節省大的as3corelib jpgs是編碼器的同步特性,它會在運行時凍結整個應用程序,因此它被之前評論中提到的異步庫替代

import com.adobe.images.JPGEncoder; 

var jpgSource:BitmapData = new BitmapData (sketch_mc.width, sketch_mc.height); 
jpgSource.draw(sketch_mc); 

var jpgEncoder:JPGEncoder = new JPGEncoder(85); 
var jpgStream:ByteArray = jpgEncoder.encode(jpgSource); 

var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream"); 
var jpgURLRequest:URLRequest = new URLRequest("jpg_encoder_download.php?name=sketch.jpg"); 
jpgURLRequest.requestHeaders.push(header); 
jpgURLRequest.method = URLRequestMethod.POST; 
jpgURLRequest.data = jpgStream; 
navigateToURL(jpgURLRequest, "_blank"); 

PHP的東西 - 這寫它到屏幕上,但它可以很容易地保存文件。

if (isset($GLOBALS["HTTP_RAW_POST_DATA"])) 
{ 
    // get bytearray 
    $jpg = $GLOBALS["HTTP_RAW_POST_DATA"]; 

    // add headers for download dialog-box 
    header('Content-Type: image/jpeg'); 
    header("Content-Disposition: attachment; filename=".$_GET['name']); 
    echo $jpg; 
} 
+0

完美,謝謝!我將不得不努力將PHP保存到服務器上,但是一切都很好。 – Aaron 2012-01-07 19:47:48

相關問題