将ImageSnapshot转换为Flex中的图像

时间:2009-05-06 20:12:56

标签: flex actionscript-3

使用Flex 3,我想拍摄像这样的图像快照:

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

并将其转换为Image类可以使用的内容。我看到有一个名为“data”的属性,它包含一个byteArray,所以我想我的问题是:如何将一个存储为byteArray的图像转换为Image类可以用来显示的东西? / p>

4 个答案:

答案 0 :(得分:2)

应该有效的简单实现:

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

将“bm”设置为Image对象的源。

答案 1 :(得分:0)

BitmapData类具有:

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

将矩形设置为图像的大小,然后发送byteArray。

然后,您应该能够将BitmapData绘制到屏幕上。

答案 2 :(得分:0)

这需要几步,但并不难。

  1. 使用setPixels()将ByteArray绘制到BitmapData实例。

  2. 创建一个新的BitmapAsset实例,并传入您的BitmapData。

  3. 将BitmapAsset传递给Image控件的source属性。

  4. 这假设您的ByteArray与setPixels()兼容。根据文档,它需要是一组代表32位ARGB值的无符号整数。如果ByteArray以另一种格式保存图像,则必须找到不同的方式。如果你很幸运,它将被编码为JPG,PNG或GIF,你将能够将ByteArray直接传递给Image上的source,而Flash Player已经知道如何解释它

答案 3 :(得分:0)

您实际上可以直接将ByteArray设置为当前Flex SDK中Image类的source属性。