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...相关推荐

  1. jupyter中怎么把图形在一个单独的窗口显示_QT绘图中的坐标概念

    学习<QT 5.9 C++开发指南>的第8章"绘图",其中有两个概念:视口和窗口. 这两个概念及其之间的关系让我很迷糊."视口"这个名词在很多文章中 ...

  2. python中的方法什么意思,“ lambda”是什么?在Python中是什么意思,最简单的使用方法是什么?...

    Can you give an example and other examples that show when and when not to use Lambda? My book gives ...

  3. 完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法

    完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法 参考文章: (1)完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法 (2)https://www.cnblogs.co ...

  4. Java Store_java之Properties集合中的方法store

    各位小伙伴们大家好,在之前的文章中,小编介绍了使用Properties集合存储数据,这次小编要介绍的是Properties集合中的方法store,具体如下: 可以使用Properties集合中的方法s ...

  5. python将字符串写入txt文件_python将字符串以utf-8格式保存在txt文件中的方法

    python将字符串以utf-8格式保存在txt文件中的方法 如下所示: #ltp_data 字符串 写进777.txt 1. def save(filename, contents): fh = o ...

  6. java中load_java之Properties集合中的方法load

    各位小伙伴们大家好在之前文章中小编介绍了java之Properties集合中的方法store,这次小编要介绍的是Properties集合中的方法load,具体如下: 可以使用Properties集合中 ...

  7. C#中Finalize方法的问题

    C#中Finalize方法的问题 ninputer在关于"值类型的Finalize不会被调用"中(http://blog.joycode.com/lijianzhong/archi ...

  8. [JavaScript] promise中.then()方法

    promise中.then()方法 promise的构造函数是同步执行 promise.then中的函数是异步执行 .then()异步执行 : 当此方法执行完后再执行内部的程序是避免了没有获取到数据 ...

  9. 【转载】JS中bind方法与函数柯里化

    原生bind方法 不同于jQuery中的bind方法只是简单的绑定事件函数,原生js中bind()方法略复杂,该方法上在ES5中被引入,大概就是IE9+等现代浏览器都支持了(有关ES5各项特性的支持情 ...

最新文章

  1. CUDA 7 流并发性优化
  2. 部署 instance 到 OVS vlan100 - 每天5分钟玩转 OpenStack(138)
  3. VC++中操作XML(MFC、SDK)
  4. 9b9t服务器显示连接超时,Fabric-sdk-go实例化链码连接7053端口等待超时
  5. JAVA——Map基础知识
  6. Python3 Selenium自动化web测试 == 第三节 常用WebDriver API使用示例上(24个API)
  7. PHP扩展——IIS下开启PHP扩展失败解决方案
  8. bootbox.js
  9. openstack changePassword
  10. 2015 年 4 月份 LeanCloud 更新汇总
  11. About scrum reports
  12. CAD怎么统计图纸中的设备材料?
  13. 关于上海游戏行业的-SDK开发
  14. 解决u盘不能格式化的问题
  15. leetcode小坑 ‘int’ object has no attribute ‘val‘
  16. JavaScript实现点赞效果
  17. idea npm start启动前端项目报错:ERROR Failed to compile with 1 errors : This dependency was not found:
  18. android 放大镜 Magnifier 简单实现
  19. 关于接入新浪微博第三方登录
  20. ESP8266(ESP-12F) 第三方库使用 -- SparkFun_APDS9960 (手势识别)

热门文章

  1. 2019-03-15-算法-进化(两数之和)
  2. 2019 ICPC 南京 F. Paper Grading(字典树dfs序上树套树)
  3. HDU - 6992 Lawn of the Dead 线段树 + 思维
  4. 2020-10-03
  5. POJ1236 Network of Schools
  6. [2.9训练]【CF909C】Python Indentation,【CF909D】Colorful Points,【CF909E】Coprocessor
  7. CF1616F Tricolor Triangles(构造、高斯消元)
  8. CF1369F-BareLee【博弈论,SG函数】
  9. P7011-[CERC2013]Escape【堆,启发式合并】
  10. CF903G-Yet Another Maxflow Problem【线段树,最大流】