加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex 屏幕截图并导出图片

发布时间:2020-12-15 01:28:41 所属栏目:百科 来源:网络整理
导读:在flex中也经常会用到截图功能,并且将截图的图片保存至本地。一想到图片那么我们就自然想到他的存在形式 bitmap byteArray.所以自然就会联系到bitmap类上去。 下面让我们一起来看看都有哪些方法吧。 方法一:按我们自然的思路实现: 在application中有两个

在flex中也经常会用到截图功能,并且将截图的图片保存至本地。一想到图片那么我们就自然想到他的存在形式 bitmap byteArray.所以自然就会联系到bitmap类上去。

下面让我们一起来看看都有哪些方法吧。

方法一:按我们自然的思路实现:

在application中有两个容器:

<mx:Canvas id="virtour_cav" top="0" bottom="0" left="0" right="0">
??
</mx:Canvas>
<mx:Canvas right="0" top="0" width="200" height="200">
??? <mx:Image id="cpImg" left="0" right="0" bottom="0" top="0"/>
</mx:Canvas>

当我们点击截图时执行

private function CaptureImage():void{

???????????? var bd:BitmapData=getBitmapData(UIComponent(virtour_cav));
???? ??????? cpImg.source= new Bitmap(bd);

}

private function getBitmapData(target:UIComponent):BitmapData{
???????? var bd:BitmapData= new BitmapData(target.width,target.height);
?????????
???????? var m:Matrix=new Matrix();
???????? bd.draw(target,m);
???????? return bd;
}

最后使用FileReference.save()方法保存就可以。

fileReference.save(new Bitmap(bd),"未命名.jpg");

方法二:直接使用图片截图类ImageSnapshot实现

这个就更简单了。

private var jpgeEnc:JPEGEncoder=new JPEGEncoder();
private var fileReference:FileReference=new FileReference();

private function CaptureImage():void{

???????????? var imgSnapshot:ImageSnapshot=ImageSnapshot.captureImage(virtour_cav,jpgeEnc);
????????? ?? fileReference.save(imgSnapshot.data,"未命名.jpg");

}

但是这两个方法实现的前提是flash 播放器要求是10以上

如果我们要用一些 flash player 10 上才提供的功能时,需要在项目属性里设置一下,否则会找不到此方法,比如flash保存文件或图片到本地的方法:FileReference .save()。

flex builder3 默认要求flash player 最低要9,需要改成10.0,修改方法如下:

右键点击项目,在项目属性中找 flex compile,修改 html wrapper,把9。0。24改为10.0.0

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读