如何打开数据:来自node-webkit app的浏览器中的图像?

时间:2014-11-11 12:31:49

标签: javascript node.js macos webkit node-webkit

我正在使用Node-Webkit制作图像增强应用。我点击了一个下载按钮,执行以下操作。

        document.getElementById("download").onclick = function(){
            var c = Caman("canvas");
            if(file.type.replace("image/","")=="jpeg"){
                //save as jpeg
                c.save('jpeg');
            } else {
                //saves as png by default
                c.save();
            }   
        }
    }

如果在浏览器中运行,该函数应该下载图像,但下载在Node-Webkit应用程序中不起作用。

所以,我想让它的功能是打开数据:默认浏览器中的图像,以便我可以从浏览器保存图像,但我不知道如何做到这一点。任何人都可以帮我这个吗?

感谢。

2 个答案:

答案 0 :(得分:0)

Node-Webkit支持node.js filesystem API。因此,您可以使用fs.writeFile方法保存文件 或者您可以查看node-webkit-fdialogs,以便为您简化任务。

如果要使用节点库,只需在javascript中require,就像在节点中一样。看看这个例子:

var fs = require("fs");
$('#saveButton').click(function() {
    var canvasImage = canvas.toDataURL("image/png").split(',')[1];
    var decodedImg = window.atob(canvasImage);
    var img = new Buffer(decodedImg, encoding='base64');

    fs.writeFile("output.png", img, function(err) {
        if(err) {
            console.log(err);
        } else {
            console.log("The file was saved!");
        }
    });
});

答案 1 :(得分:0)

您可以使用canvas-to-image,它适用于node-webkit和浏览器。