2009-05-06 29 views
3

使用Flex 3,我想拍攝圖像快照像這樣:談到將ImageSnapshot放入圖像中的Flex

var logoSnapshot:ImageSnapshot = ImageSnapshot.captureImage(logoContainer); 

,並把它變成東西Image類可以使用。我看到有一個名爲「data」的屬性,它包含一個byteArray,所以我想我的問題是:如何將圖像存儲爲byteArray並將其轉換爲Image類可用來顯示的圖像?

回答

2

簡單的實現,應該工作:

var bm : Bitmap = new Bitmap(ImageSnapshot.captureBitmapData(logoContainer)); 

集 「BM」 作爲Image對象的來源。

0

BitmapData類有:

public function setPixels(rect:Rectangle, inputByteArray:ByteArray):void 

設置矩形設置圖像的大小,然後在字節組發送。

然後,您應該能夠將BitmapData繪製到屏幕上。

0

這需要幾個步驟,但並不難。

  1. 使用setPixels()將您的ByteArray繪製到BitmapData實例。

  2. 創建一個新的BitmapAsset實例,並傳入你的BitmapData。

  3. 將BitmapAsset傳遞給Image控件的source屬性。

這是假設你的ByteArray與setPixels()兼容。根據文檔,它需要是一組代表32位ARGB值的無符號整數。如果ByteArray以另一種格式保存圖像,則必須找到不同的方式。如果幸運的話,它將被編碼爲JPG,PNG或GIF,並且您可以直接將ByteArray傳遞給圖像上的source,並且Flash Player已經知道如何解釋它。

0

實際上,您可以直接將ByteArray設置爲當前Flex SDK中Image類的源屬性。