使用Flex 3,我想拍攝圖像快照像這樣:談到將ImageSnapshot放入圖像中的Flex
var logoSnapshot:ImageSnapshot = ImageSnapshot.captureImage(logoContainer);
,並把它變成東西Image類可以使用。我看到有一個名爲「data」的屬性,它包含一個byteArray,所以我想我的問題是:如何將圖像存儲爲byteArray並將其轉換爲Image類可用來顯示的圖像?
使用Flex 3,我想拍攝圖像快照像這樣:談到將ImageSnapshot放入圖像中的Flex
var logoSnapshot:ImageSnapshot = ImageSnapshot.captureImage(logoContainer);
,並把它變成東西Image類可以使用。我看到有一個名爲「data」的屬性,它包含一個byteArray,所以我想我的問題是:如何將圖像存儲爲byteArray並將其轉換爲Image類可用來顯示的圖像?
簡單的實現,應該工作:
var bm : Bitmap = new Bitmap(ImageSnapshot.captureBitmapData(logoContainer));
集 「BM」 作爲Image對象的來源。
BitmapData類有:
public function setPixels(rect:Rectangle, inputByteArray:ByteArray):void
設置矩形設置圖像的大小,然後在字節組發送。
然後,您應該能夠將BitmapData繪製到屏幕上。
這需要幾個步驟,但並不難。
使用setPixels()
將您的ByteArray繪製到BitmapData實例。
創建一個新的BitmapAsset實例,並傳入你的BitmapData。
將BitmapAsset傳遞給Image控件的source
屬性。
這是假設你的ByteArray與setPixels()
兼容。根據文檔,它需要是一組代表32位ARGB值的無符號整數。如果ByteArray以另一種格式保存圖像,則必須找到不同的方式。如果幸運的話,它將被編碼爲JPG,PNG或GIF,並且您可以直接將ByteArray傳遞給圖像上的source
,並且Flash Player已經知道如何解釋它。
實際上,您可以直接將ByteArray設置爲當前Flex SDK中Image類的源屬性。