日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

html5中 save方法,如何HTML5画布另存为窗口8 Metro应用中的图像文件?(How to save html5 c...

發布時間:2023/12/3 HTML 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。