html5中 save方法,如何HTML5画布另存为窗口8 Metro应用中的图像文件?(How to save html5 c...
var myImage = canvas.toDataURL("image/png");
我认为myImage在现在png格式如何保存编码的图像字节myImage作为一个文件(图片文件夹)?
Answer 1:
而不是使用的.toDataUrl ,你需要使用.msToBlob :
var blob = canvas.msToBlob();
然后,你需要写到磁盘:
var output;
var input;
var outputStream;
Windows.Storage.ApplicationData.current.localFolder.createFileAsync("yourFile",
Windows.Storage.CreationCollisionOption.replaceExisting).
then(function(file) {
return file.openAsync(Windows.Storage.FileAccessMode.readWrite);
}).then(function(stream) {
outputStream = stream;
output = stream.getOutputStreamAt(0);
input = blob.msDetachStream();
return Windows.Storage.Streams.RandomAccessStream.copyAsync(input, output);
}).then(function() {
return output.flushAsync();
}).done(function() {
input.close();
output.close();
outputStream.close();
});
在您的应用程序的应用程序数据文件夹,你现在必须写入到磁盘的形象。
如果你想放置在别处 - 例如,我的图片等 - 那么你只需要使用其他存储文件夹中的一个。 见样品这里 。 请注意,要访问你需要的是功能添加到您的清单(只是一个复选框在VS的package.appxmanifest编辑)图片库
有太多的输出文件的更复杂的操作许多其他成像选项。 看到成像样本代码。
Answer 2:
我发现这是代码从简单的成像样品最有用位。 它可以让你编码为PNG或JPG,而不是仅仅倾销画布数据。
Helpers.getFileFromSavePickerAsync().then(function (file) {
filename = file.name;
switch (file.fileType) {
case ".jpg":
encoderId = Imaging.BitmapEncoder.jpegEncoderId;
break;
case ".bmp":
encoderId = Imaging.BitmapEncoder.bmpEncoderId;
break;
case ".png":
default:
encoderId = Imaging.BitmapEncoder.pngEncoderId;
break;
}
return file.openAsync(Windows.Storage.FileAccessMode.readWrite);
}).then(function (_stream) {
stream = _stream;
// BitmapEncoder expects an empty output stream; the user may have selected a
// pre-existing file.
stream.size = 0;
return Imaging.BitmapEncoder.createAsync(encoderId, stream);
}).then(function (encoder) {
var width = id("outputCanvas").width;
var height = id("outputCanvas").height;
var outputPixelData = Context.getImageData(0, 0, width, height);
encoder.setPixelData(
Imaging.BitmapPixelFormat.rgba8,
Imaging.BitmapAlphaMode.straight,
width,
height,
96, // Horizontal DPI
96, // Vertical DPI
outputPixelData.data
);
return encoder.flushAsync();
}).then(function () {
WinJS.log && WinJS.log("Saved new file: " + filename, "sample", "status");
id("buttonSave").disabled = false;
id("buttonRender").disabled = false;
}).then(null, function (error) {
WinJS.log && WinJS.log("Failed to save file: " + error.message, "sample", "error");
}).done(function () {
stream && stream.close();
});
文章来源: How to save html5 canvas as an image file in window 8 metro app?
html5中 save方法,如何HTML5画布另存为窗口8 Metro应用中的图像文件?(How to save html5 c...相关推荐
- jupyter中怎么把图形在一个单独的窗口显示_QT绘图中的坐标概念
学习<QT 5.9 C++开发指南>的第8章"绘图",其中有两个概念:视口和窗口. 这两个概念及其之间的关系让我很迷糊."视口"这个名词在很多文章中 ...
- python中的方法什么意思,“ lambda”是什么?在Python中是什么意思,最简单的使用方法是什么?...
Can you give an example and other examples that show when and when not to use Lambda? My book gives ...
- 完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法 参考文章: (1)完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法 (2)https://www.cnblogs.co ...
- Java Store_java之Properties集合中的方法store
各位小伙伴们大家好,在之前的文章中,小编介绍了使用Properties集合存储数据,这次小编要介绍的是Properties集合中的方法store,具体如下: 可以使用Properties集合中的方法s ...
- python将字符串写入txt文件_python将字符串以utf-8格式保存在txt文件中的方法
python将字符串以utf-8格式保存在txt文件中的方法 如下所示: #ltp_data 字符串 写进777.txt 1. def save(filename, contents): fh = o ...
- java中load_java之Properties集合中的方法load
各位小伙伴们大家好在之前文章中小编介绍了java之Properties集合中的方法store,这次小编要介绍的是Properties集合中的方法load,具体如下: 可以使用Properties集合中 ...
- C#中Finalize方法的问题
C#中Finalize方法的问题 ninputer在关于"值类型的Finalize不会被调用"中(http://blog.joycode.com/lijianzhong/archi ...
- [JavaScript] promise中.then()方法
promise中.then()方法 promise的构造函数是同步执行 promise.then中的函数是异步执行 .then()异步执行 : 当此方法执行完后再执行内部的程序是避免了没有获取到数据 ...
- 【转载】JS中bind方法与函数柯里化
原生bind方法 不同于jQuery中的bind方法只是简单的绑定事件函数,原生js中bind()方法略复杂,该方法上在ES5中被引入,大概就是IE9+等现代浏览器都支持了(有关ES5各项特性的支持情 ...
最新文章
- CUDA 7 流并发性优化
- 部署 instance 到 OVS vlan100 - 每天5分钟玩转 OpenStack(138)
- VC++中操作XML(MFC、SDK)
- 9b9t服务器显示连接超时,Fabric-sdk-go实例化链码连接7053端口等待超时
- JAVA——Map基础知识
- Python3 Selenium自动化web测试 == 第三节 常用WebDriver API使用示例上(24个API)
- PHP扩展——IIS下开启PHP扩展失败解决方案
- bootbox.js
- openstack changePassword
- 2015 年 4 月份 LeanCloud 更新汇总
- About scrum reports
- CAD怎么统计图纸中的设备材料?
- 关于上海游戏行业的-SDK开发
- 解决u盘不能格式化的问题
- leetcode小坑 ‘int’ object has no attribute ‘val‘
- JavaScript实现点赞效果
- idea npm start启动前端项目报错:ERROR Failed to compile with 1 errors : This dependency was not found:
- android 放大镜 Magnifier 简单实现
- 关于接入新浪微博第三方登录
- ESP8266(ESP-12F) 第三方库使用 -- SparkFun_APDS9960 (手势识别)
热门文章
- 2019-03-15-算法-进化(两数之和)
- 2019 ICPC 南京 F. Paper Grading(字典树dfs序上树套树)
- HDU - 6992 Lawn of the Dead 线段树 + 思维
- 2020-10-03
- POJ1236 Network of Schools
- [2.9训练]【CF909C】Python Indentation,【CF909D】Colorful Points,【CF909E】Coprocessor
- CF1616F Tricolor Triangles(构造、高斯消元)
- CF1369F-BareLee【博弈论,SG函数】
- P7011-[CERC2013]Escape【堆,启发式合并】
- CF903G-Yet Another Maxflow Problem【线段树,最大流】