`
maloveqiao
  • 浏览: 99656 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Flash AS3 保存图片到本地

    博客分类:
  • as3
 
阅读更多
核心提示:如果你想保存从视频,图表或表格中获取的图片数据到本地,可以使用BitmapData类。

原文地址:

http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=2&postId=8406

如果你想保存从视频,图表或表格中获取的图片数据到本地,可以使用BitmapData类。

摘要:

使用BitmapData类来创建一个包含了从组件中获取的图片数据的对象,使用mx.graphics.codec包提供的方法编码为JPEG或PNG格式,然后使用AIR API提供的File和FileStream类保存到本地。

具体方法:

首先我们我们需要得到屏幕的截图,要做到这一点,我们要使用BitmapData类。比如我们想从一个命名为myChart的线状图表上获取截图:

import flash.display.BitmapData;
var bmpd:BitmapData = new BitmapData(myChart.width,myChart.height);
bmpd.draw(myChart);



然后我们需要把bitmapdata对象编译为ByteArray对象,这样我们就可以保存为文件了。这个ByteArray对象需要被格式化,我们可以使用mx.graphics.codec包中的JPEGEncoder和PNGEncoder类来实现它。

编码为JPEG格式:

import mx.graphics.codec.JPEGEncoder;
//create a new instance of the encoder, and set the jpeg compression level from 0 to 100
var jpgenc:JPEGEncoder = new JPEGEncoder(80);
//encode the bitmapdata object and keep the encoded ByteArray
var imgByteArray:ByteArray = jpgenc.encode(bmpd);



编码为PNG格式:

import mx.graphics.codec.JPEGEncoder;
//create a new instance of the encoder
var pngenc:PNGEncoder = new PNGEncoder();
//encode the bitmapdata object and keep the encoded ByteArray
var imgByteArray:ByteArray = pngenc.encode(bmpd);



现在我们已经准备好了ByteArray数据,我们只需要把它保存到本地就可以了。我们可以用File和File Stream类来实现。

建立一个JPEG文件参照:

//gets a reference to a new empty jpg image file in user desktop
var fl:File = File.desktopDirectory.resolvePath(”snapshot.jpg”);



建立一个PNG文件参照:

//gets a reference to a new empty jpg image file in user desktop
var fl:File = File.desktopDirectory.resolvePath(”snapshot.png”);



现在我们可以把ByteArray用File Stream保存到文件中。

//Use a FileStream to save the bytearray as bytes to the new file
var fs:FileStream = new FileStream();
try{
//open file in write mode
fs.open(fl,FileMode.WRITE);
//write bytes from the byte array
fs.writeBytes(imgByteArray);
//close the file
fs.close();
}catch(e:Error){
trace(e.message);
}
分享到:
评论

相关推荐

    flash把生成的图片保存到本地

    本资源用于把程序生成的位图保存到本地,保存的格式是png格式,其中包括fla文件,swc库,生成png的类,以及一段简单的特效代码,今天心情大好,分享出来大家一块用!哈哈哈... 之后还会陆续上传!

    flash as3 实现简单视频截图

    本实例需要flash cs5版本打开并运行,实现最简单的通过摄像头截屏生成图片,并可以保存到本地。

    as3比较详尽的工具类

    JPGLoader.as ---------------------- 本地图片上传保存 JPGEncoder.as ---------------------- 压缩为jpg PNGEncoder.as ---------------------- 压缩为png component: --button: BasicButton.as ---------...

    HTTP网址抓取器 v4.6

    它可将你正在访问的网页中的所有资源(图片、flash、mp3、ram、asf等等)的URL抓下来,而无论它们被隐藏得多深。 另外,本软件提供对各种资源URL进行分门别类,并提供方便的界面(以网页为模板)在各资源URL间...

    flash shiti

    3.Flash action“while”意义是? A. 卸载动画片段符号 B. 声明局部变量 C. 当…成立时 D. 对…对象(Object)做 4.Flash中如何查看特定场景? A. 选择 Window > Inspectors > Scene B. 选择 View > Goto ,然后...

    最好的asp CMS系统科讯CMSV7.0全功能SQL商业版,KesionCMS V7.0最新商业全能版-免费下载

    32、保存远程图片,添加或采集信息时,可选择远程保存图片到本地服务器,防止对方删除图片或者服务器不正常时图片不显示。 33、水印缩略图,可按要求等比缩小,可按要求在指定位置加图片或文字水印,提升内容被转载...

    vc++ 开发实例源码包

    如题,此实例非常适合学习,重载并自绘了Wnd类,效果是上下文字、图片、文字由大到小和星星闪烁等滚动效果。实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其...

    网管教程 从入门到精通软件篇.txt

    网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文和在...

    计算机应用技术(实用手册)

    解决方法:打开机箱,把主板上的一节纽扣电池取出,换上一节新的既可,或是CMOS被放电了,从新进入CMOS设置时间保存并退出就可解决此问题。 Press F1 tocontinue ,DEL to enter SETUP 按F1可以继续启动,按DEL进入...

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    《C#开发实例大全(基础卷)》筛选、汇集了C#开发从基础知识到高级应用各个层面约600个实例及源代码,每个实例都按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析解读。全书分6篇共25章,主要...

    多媒体教室

    班级模型可根据教室不同情况随意拖动更改,并自动保存。 屏幕广播效率极高,尤其在网络条件较差时亦能体现出良好的性能;可以根据网络条件调节网络补偿强度,根据广播内容调节广播及录制效率,使广播达到最佳效果;...

Global site tag (gtag.js) - Google Analytics