在網路上有看到少許的下載圖片到LocalStorage的WinJS(javascript)範例,但是沒有找到如何從LocalStorage讀取出來的範例(可能我英文不好Orz),後來在MSDN與同事的幫助下,找到了完美解決32bit jpg檔無法用<img src>顯示的問題,在方法一中最關鍵的地方是
2013/03/06 更新
oneTimeOnly: false、或是乾脆省略不填,就不會發生有些圖可以顯示,有些不能顯示。
// 方法一(完美解決方案)
// 從localStorage讀取圖片後顯示 function loadImage(filename,baseItem) { var lsFolder = Windows.Storage.ApplicationData.current.localFolder; return lsFolder.getFileAsync(filename).then(function (file) { return file.openReadAsync().then(function (stream) { var objectURL = window.URL.createObjectURL(file, { oneTimeOnly: false}); return { file: objectURL, item: baseItem }; }); }); }
// 方法二(遇到32bit的jpg檔會無法顯示(變黑色),只能顯示24bit的jpg檔)
※ 2013/03/05 更新
後來經過反覆測試,發現問題是它似乎是用副檔名來辨識,32bit為png圖檔,但是副檔名卻是jpg,造成讀取的時候無法顯示,解決方法是先行將他轉成對應的png後,再讀進來就可以顯示,不過還是用上面串流的方法比較容易!
// 取得LocalStorage網址 function getURLFromLocalStorage(filename) { if (filename.indexOf("ms-appdata:///Local/") === -1) { filename = "ms-appdata:///Local/" + filename; } return filename; }
它似乎是
全站熱搜
留言列表