`
Jack-chen
  • 浏览: 71189 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

AIR:如何保存图片到本地

    博客分类:
  • Flex
阅读更多
原文地址:

如果你想保存从视频,图表或表格中获取的图片数据到本地,可以使用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”);

AIR:如何保存图片到本地建立一个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);
   }
分享到:
评论

相关推荐

    AS3摄像头拍照保存到本地

    在本文中,我们将深入探讨如何使用ActionScript 3(AS3)来实现摄像头拍照并保存到本地的功能。AS3是Adobe Flash Player和Adobe AIR应用程序的主要编程语言,它提供了丰富的功能来处理多媒体,如访问用户的摄像头。 ...

    flex air 本地文件管理器

    在Flex Air开发过程中,开发者通常会创建这样的项目来验证文件管理功能的实现,例如测试文件的打开、保存、复制、移动等操作,以及文件树和缩略图视图的正确显示。 总的来说,Flex Air通过集成Air runtime,提供了...

    AIR操作file的例子

    主要是关于AIR操作本地文件夹的例子。 功能: 通过选择的图片生成一个新的swf图片浏览器 并且有本地打开和本地保存功能 操作: 打开按钮 可以单选和多选图片 然后点保存 可以把生成的swf保存到指定路径 然后关闭窗口...

    Flex 保存组件至本地

    在Adobe AIR环境中,可以使用`File`和`FileStream`类来保存文件到用户的本地系统。创建一个`File`对象,指定保存路径和文件名,然后使用`FileStream`写入字节数组: ```actionscript var file:File = File....

    flex-图片保存-本地磁盘-单个ui截屏-整个框架截屏

    // 保存图片 var file:File = File.desktopDirectory.resolvePath("screenshot.jpg"); var stream:FileStream = new FileStream(); stream.open(file, FileMode.WRITE); var encoder:JPEGEncoder = new ...

    tumblr-air:从 code.google.comptumblr-air 自动导出

    7. **数据存储**:由于是桌面应用,除了与服务器交互外,还可能使用SQLite数据库或其他本地存储解决方案来保存用户数据。 8. **部署与分发**:完成的AIR应用可以打包成安装程序,通过网站、应用商店或者自定义渠道...

    AIR版截屏跟QQ截屏一样 (源码)

    2. `Shotscreen` - 这可能是核心的屏幕截图功能模块,可能包含处理截图、保存图片、用户界面逻辑等相关代码。 通过这些文件,开发者可以学习到如何在AIR环境中实现屏幕捕获,以及如何与其他系统组件交互。可能涉及...

    Flex 的 Adobe AIR快速入门

    - **文件读写**: 使用File类的方法读取和保存文本文件到磁盘。 4. **压缩文件和数据** - **数据压缩**: 使用Zip类或者第三方库来压缩文件或数据,这对于减少存储空间或网络传输量非常有用。 5. **在Adobe AIR...

    Air实现截屏

    5. **用户交互**:QQ截屏工具通常还包含其他功能,如选择截图区域、添加标注、保存图片等。在Flex中,可以使用组件和事件监听器来实现这些交互。 在"vesion.4"这个文件中,可能是该截屏功能的一个版本迭代,可能...

    fckEditor air内容编辑器的使用以及在air中使用

    总之,将fckEditor集成到Adobe AIR项目中,可以为用户提供一个强大的本地文本编辑体验。通过理解和利用fckEditor的API,你可以定制编辑器的功能,使其适应特定的应用场景。同时,熟悉Adobe AIR的开发环境和资源管理...

    Flex-图片编辑器-air源码实例

    6. **Adobe AIR API**:为了实现桌面应用的功能,源码可能会使用Adobe AIR提供的API,比如访问本地文件系统读取或保存图片。 7. **项目结构**:.actionScriptProperties和.flexProperties文件是Flex项目的配置文件...

    Adobe AIR的查看帮助文档

    #### 第1章: Adobe AIR的本地扩展简介 **关于本机扩展** Adobe AIR (Adobe Integrated Runtime) 是一个由Adobe Systems开发的跨平台运行环境,允许开发者使用Flex、Flash以及HTML、JavaScript等技术来构建可在多种...

    PDF生成例子,AIR

    例如,一个简单的AIR程序可能首先创建PDF对象,然后在新页面上添加标题文本,接着插入一张图片,最后保存到用户的桌面。 了解并掌握如何使用AlivePDF库,开发者可以轻松地将PDF生成功能集成到Adobe AIR应用中,为...

    FilePane使用教程.docx

    - **保存到本地硬盘**:将图片保存到你的电脑。 - **直接编辑**:立即进行编辑操作。 ### 文本片段处理 3. **文本处理**: 对于拖入的文本片段,FilePane不仅显示段落中的特殊符号数量和总字数,还提供了以下...

    flex图片查看器源码

    在Flex中,可能使用FileReference类来实现这一功能,允许用户选择本地路径并保存图片。 8. **事件监听和处理**: 在图片查看器中,可能会有许多事件监听器,如点击事件、滚动事件等。ActionScript的addEventListener...

    ASP源码—Z-Blog 2.X黑白博客模板LaoZuo_Air v1.1.zip

    1. **解压文件**:首先,需要将压缩包解压到本地计算机上,确保所有文件完整无误。 2. **上传至服务器**:将解压后的文件夹通过FTP工具上传到你的Web服务器的Z-Blog程序目录下的模板文件夹。 3. **选择模板**:登录Z...

    flex web 调用摄像头保持图片

    而要保存图片,我们需要先将其转换为`BitmapData`对象,这可以通过`BitmapData.draw()`方法实现,该方法可以将任何可视对象(如Video对象)绘制到BitmapData上。 4. **Saving Images**:将BitmapData转换为图片文件...

    PNG图片裁剪-工具.zip

    这个PNG图片裁剪工具利用了Flash Air的桌面集成特性,让用户能够直接在本地环境中处理图片,无需上传到云端,从而确保了数据的安全性和隐私。 该工具的核心功能包括: 1. **透明区域识别**:自动检测PNG图片四周的...

    flex图片上传带预览功能

    在`UploadFile.aspx`和`UploadFile.aspx.cs`中,可能包含ASP.NET的后台处理代码,负责接收文件并保存到服务器。在Flex客户端,可以使用`FileReference`的`upload()`方法将文件发送到指定URL。 4. **与...

    账本小程序源码

    开发者不仅可以学习到如何使用Flex、ActionScript3和AIR进行开发,还可以深入到个人财务管理软件的设计和实现,比如数据结构的选择(如数组、集合或数据库)、用户体验设计、以及如何在本地环境中持久化数据。...

Global site tag (gtag.js) - Google Analytics