`
rensanning
  • 浏览: 3538427 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
Efef1dba-f7dd-3931-8a61-8e1c76c3e39f
使用Titanium Mo...
浏览量:37958
Bbab2146-6e1d-3c50-acd6-c8bae29e307d
Cordova 3.x入门...
浏览量:606451
C08766e7-8a33-3f9b-9155-654af05c3484
常用Java开源Libra...
浏览量:681074
77063fb3-0ee7-3bfa-9c72-2a0234ebf83e
搭建 CentOS 6 服...
浏览量:88691
E40e5e76-1f3b-398e-b6a6-dc9cfbb38156
Spring Boot 入...
浏览量:401224
Abe39461-b089-344f-99fa-cdfbddea0e18
基于Spring Secu...
浏览量:69548
66a41a70-fdf0-3dc9-aa31-19b7e8b24672
MQTT入门
浏览量:91410
社区版块
存档分类
最新评论

使用Titanium将Canvas图像保存为文件

阅读更多
介绍在Titanium中,将WebView中通过canvas绘制的图像保存为文件的方法。

用户通过canvas所绘制的图像,在很多时候需要保存为文件。如何将WebView的canvas数据传递给Titanium有2个方法。

1.在html文件中(包含canvas标签的html文件)通过JavaScript(Titanium.App.fireEvent)通信将canvas的数据作为该事件的参数传递过去。

2.在Titanium的JS中只用WebView的evalJS方法,调用html文件中能够返回绘制的canvas图像数据的JavaScript。

第一种方法以前提到过了。这里我们说说第2中方法。

首先我们需要使用能够返回canvas的图像数据的toDataURL()方法。但是有一个问题是toDataURL()方法返回的是通过base64加密的字符串,在这段字符串的开头是mimetype

如:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABcIAAAQqCAYAAABk7....

通过replace方法将toDateURL()返回的字符串进行处理。消除mimetype之后,大概是这个样样子的:

iVBORw0KGgoAAAANSUhEUgAABcIAAAQqCAYAAABk7....

处理内容整理后大概是以下这样的一个函数:
function output(){
    var cvs = document.getElementById( "stage" );
    var src = cvs.toDataURL("image/png").replace(/^.*,/,'');
    return src;
}


通过这个函数返回的值,我们变换后就能保存为文件了。

var result = webview.evalJS("output();");
var base64 = Titanium.Utils.base64decode(result);
var file = Titanium.Filesystem.getFile( Titanium.Filesystem.tempDirectory, "_TEMP_.png" );
file.write( base64 );



******
包含有canvas的HTML文件详见附件!
0
0
分享到:
评论
2 楼 rensanning 2013-01-16  
Ti.App.fireEvent("someEvent", {img_data:document.getElementById("stage").toDataURL("image/png")});
1 楼 白衣卿相 2013-01-15  
1.在html文件中(包含canvas标签的html文件)通过JavaScript(Titanium.App.fireEvent)通信将canvas的数据作为该事件的参数传递过去。

求这个怎么实现的?
QQ:1003949351
谢谢!

相关推荐

    Titanium Mobile API的chm文件制作思路

    7. **编译CHM文件**:最后一步是使用CHM编译工具将所有HTML、图像、索引文件打包成一个CHM文件。编译过程中,工具会处理所有内部链接,确保在CHM环境中可以正常导航。 完成上述步骤后,你将得到一个包含Titanium ...

    使用Titanium来开发“Path”的一些创新UI布局 - 左右菜单

    这篇博客“使用Titanium来开发“Path”的一些创新UI布局 - 左右菜单”可能探讨了如何利用 Titanium 创建类似 Path 应用的界面设计,其中包含了左右滑动切换菜单的实现。Path 是一款知名的社交应用,其用户界面以其...

    Titanium中文版开发手册

    Titanium中文版开发手册是一份专门为中文用户编译的开发者指南,旨在帮助熟悉中文的开发者充分利用Titanium框架进行移动应用的开发。Titanium是一个开源的JavaScript平台,允许开发者使用JavaScript、HTML和CSS来...

    Cisco_N7K模拟器Titanium6.1.1安装方法.docx

    本文档将指导用户如何安装 Cisco N7K 模拟器 Titanium 6.1.1,包括虚拟机的设置、模拟器的连接、TFTP 服务器的建立、升级安装包的传输、系统文件的更新等步骤。 一、虚拟机设置 在安装 Cisco N7K 模拟器 Titanium ...

    Titanium plugin开发初探

    这个文件告诉 Titanium 如何加载和使用你的插件。 **6. 实现 JavaScript 接口** 在 JavaScript 侧,创建一个模块实例,并暴露必要的方法和属性给应用程序。这通常在 `index.js` 文件中完成。 **7. 测试与发布** ...

    TitaniumBackup_6.0.5.1

    TitaniumBackup_6.0.5.1,这款专业版应用,以其强大的功能和高效的操作,为用户提供了可靠的数据管理工具。它的静默恢复特性,更是为用户带来了前所未有的便利。 Titanium Backup 是一款备受赞誉的第三方备份工具,...

    Titanium Mobile API

    该工具允许开发者使用 JavaScript 编写应用程序,并通过一套统一的 API 接口访问原生移动设备功能,如 GPS 定位、摄像头、通讯录等,同时能够编译为 iOS 和 Android 平台的原生应用程序。 #### 二、Titanium Module...

    前端开源库-node-titanium-sdk

    前端开发领域中,`node-titanium-sdk`是一个重要的开源库,它基于Node.js环境,为开发者提供了一种使用JavaScript开发原生移动应用的途径。`node-titanium-sdk`是Appcelerator Titanium SDK的一部分,允许开发者利用...

    Titanium中支持IOS设备的拖拽

    `TiDrop.js`这个文件可能包含了上述所有步骤的实现,提供了易于使用的API,让开发者可以在Titanium应用中轻松地启用拖放功能。通过导入和使用这个模块,开发者可以快速地在他们的应用中实现拖放功能,无需深入学习...

    titanium 打开本地网络

    Titanium 是一个强大的开源JavaScript框架,专为开发原生移动应用而设计。它允许开发者使用JavaScript编写代码,同时能够利用iOS、Android等平台的原生功能。在涉及到“titanium 打开本地网络”的话题时,我们主要...

    TiCachedImages:关于如何在 Titanium 中缓存图像文件的示例

    将文件存储在设备上作为缓存 根据时间自动过期文件并重新下载 提供一种垃圾收集陈旧缓存文件的方法 如果远程文件未更改,则阻止文件 I/O 自动限制请求以防止过多的 HTTP 连接(适用于带有图像的 TableView) 使用 ...

    Titanium资料

    学习这些资料,你将能够熟练地使用 Titanium Studio 创建跨平台的应用,掌握从基本的 UI 设计到复杂的数据库操作,以及如何利用模块来扩展功能。同时,理解并熟练运用 JSON 文件将帮助你更好地查阅和理解 Titanium ...

    Titanium_Backup_Pro_Donate_v8.4.0.2.apk

    [✔] TB Web服务器:将备份作为单个ZIP文件下载/上传到计算机上 [✔]转换用户应用程序系统应用程序 [✔]将系统应用程序更新集成到ROM [✔]加密 [✔] Market Doctor(将应用程序重新链接到Market) [✔]“销毁...

    [Titanium] Appcelerator Titanium 移动应用开发教程 (英文版)

    [Packt Publishing] Appcelerator Titanium 移动应用开发教程 (英文版) [Packt Publishing] Creating Mobile Apps with Appcelerator Titanium (E-Book) ☆ 图书概要:☆ Develop fully-featured mobile ...

    Titanium Backup_3.7.4捐赠完全版

    Titanium Backup_3.7.4捐赠完全版

    titanium-d1-kickstart.6.1.1

    titanium-d1-kickstart.6.1.1.gbin 强大的思科模拟器

    Titanium使用JavaScript来开发原生iOSAndroid和Windows应用

    Titanium正是这种混合开发的代表,它将JavaScript代码编译为原生应用,使得开发者能享受到Web开发的便捷性,同时获得接近原生应用的性能和用户体验。 ### Titanium框架 Titanium框架提供了一系列APIs,这些APIs与...

    Google-Cloud-Messaging--Titanium-, 在 Titanium 中,Google云消息传递.zip

    Google-Cloud-Messaging--Titanium-, 在 Titanium 中,Google云消息传递 Google-Cloud-Messaging--Titanium -注册带有GCM和处理发送到设备的通知的Titanium MODULE 。Android平台使用c2dm进行推送,但是因为c2dm停止...

Global site tag (gtag.js) - Google Analytics