【问题标题】:Save Canvas Image as image in phones file-system using Phonegap?使用Phonegap将画布图像保存为手机文件系统中的图像?
【发布时间】:2014-07-18 20:50:47
【问题描述】:

我正在创建一个允许用户拍照的应用程序。在画布上完成图像编辑后,将拍摄的照片绘制到画布上并标记当前日期和其他用户特定信息,我可以将图像作为 DataUri 获取,但应用程序需要将图像保存到手机本地文件系统并取回设备文件系统上保存位置的路径。下面是获取dataURI的代码:

    var canvas = $('#myCanvas')[0];
    var context = canvas.getContext('2d');
    var imageObj = new Image();
    var scale = 0.2;
    var imgWidth, imgHeight;
    imageObj.src = "data:image/jpeg;base64," + imageData;
    imageObj.onload = function() {

        var mpImg = new MegaPixImage(imageObj);

        if (z.globals.deviceType == "iPhone") {

            imgWidth = imageObj.width,
                imgHeight = imageObj.height;
            mpImg.render(document.getElementById('canvas'), { width: imgWidth * scale, height: imgHeight * scale });

        } else {

            canvas.width = 670;
            canvas.height = 500;
            context.drawImage(imageObj, 0, 0, 670, 500);

        }

        var dateTaken = new Date();

        context.fillStyle = "#FFFFFF";

        context.fillText(toString(dateTaken), 0, 30);

        largeImg.src = canvas.toDataURL();

有没有办法使用 Phonegap 将 dataURI 保存到设备文件系统并取回文件路径。

我尝试了 canvas2ImagePlugin.js,但它将图像保存到画廊但不返回文件路径。

任何建议都将不胜感激。

【问题讨论】:

  • 您想将其保存为图像文件还是 64 位编码的 PNG URL 文件?

标签: javascript cordova canvas phonegap-plugins


【解决方案1】:

确实,canvas2ImagePlugin 返回的是保存文件的 URI。

这是传递给成功回调的参数,在文档中称为“msg”。

window.canvas2ImagePlugin.saveImageDataToLibrary(
        function(msg){
            console.log("Imaged saved to URI : "+msg);
        },
        function(err){
            console.log(err);
        },
        document.getElementById('myCanvas')
    );

它返回如下内容:

Imaged saved to URI :/storage/sdcard1/Pictures/c2i_1862014144659.png

【讨论】:

  • 只是一个简短的说明,不幸的是,我的回答仅适用于 android。对于 IOS,插件仅在 msg 参数中返回“图像已保存”:(
  • 这么多年后,你找到IOS的解决方案了吗?您介意在这里分享解决方案吗?
  • 我做了一个 fork 以允许在 IOS 中以与在 android 中相同的方式检索文件名。不幸的是,由于项目所有者没有太多时间来处理这个项目,因此尚未审核拉取请求。你可以在这里找到叉子:github.com/nicolasgrolleau/Canvas2ImagePlugin
  • 查看拉取请求。至少有三个分支可以纠正 iOS 中的问题,包括我的
猜你喜欢
  • 2013-06-04
  • 2023-04-04
  • 2013-11-23
  • 1970-01-01
  • 1970-01-01
  • 2012-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多