我正在开发一个 chrome 扩展。
我在画布中打开一个图像文件,对其应用一些更改,然后尝试将其保存到 HTML5 文件系统 api。
首先,我从画布中获取 dataURL:
var dataURL = canvas.toDataURL('image/png;base64');
然后只是数据:
var image64 = dataURL.replace(/data:image\/png;base64,/, '');
然后我制作一个 Blob。
var bb = new BlobBuilder();
bb.append(image64);
var blob = bb.getBlob('image/png');
然后我使用以下函数 onInitFs() 请求文件系统;
function onInitFs(fs) {
fs.root.getFile('image.png', {create: true}, function(fileEntry) {
// Create a FileWriter object for our FileEntry (log.txt).
fileEntry.createWriter(function(fileWriter) {
//WRITING THE BLOB TO FILE
fileWriter.write(blob);
}, errorHandler);
}, errorHandler);
}
window.requestFileSystem(window.PERSISTENT, 5*1024*1024, onInitFs, errorHandler);
这会导致将损坏的文件写入文件系统。
我不知道我还能做些什么来完成这项工作。
有人可以指导我正确的方向。
以下是我用来完成此任务的功能的一些来源。
http://dev.w3.org/html5/canvas-api/canvas-2d-api.html#todataurl-method
http://www.html5rocks.com/en/tutorials/file/filesystem/#toc-file-creatingempty
谢谢你!