【问题标题】:Base64 to PNG in Android Phonegap plugin ERRORAndroid Phonegap插件错误中的Base64到PNG
【发布时间】:2013-03-28 15:15:38
【问题描述】:

我对 Phonegap 和 Java 还很陌生,并试图将 png 保存到 sdcard。 我一直在关注这篇文章并在那里采取了所有步骤:Phonegap Plugin:How to convert Base64 String to a PNG image in Android

当我调用 saveImage 方法时,我只收到警报:“无效操作” 我不知道为什么,有人对这个特定插件有更多经验吗?

调用插件方法的js代码:

function onDeviceReady(){
    var myCanvas = getCanvas();
    var myBase64 = myCanvas.toDataURL("image/png");
    //console.log(myBase64);
    //Shows how to use optional parameters
    window.plugins.base64ToPNG.saveImage(myBase64, {filename:"inbjudan.png", overwrite: true}, 
    function(result) {
        alert(result);
    }, function(error) {
        alert(error);
    });
}

【问题讨论】:

  • 我不知道PhoneGap,所以不能真正帮助你,但我只是想警告你,转换为base64对于大于几MB的东西是不可靠的。 5~10 mb 的像样的相机图片可能已经导致内存不足错误。
  • 我正在使用画布将 3 个 png 组合成明信片大小(420x298 像素)或更小的文本,所以我认为结果的大小不会成为问题

标签: javascript android phonegap-plugins


【解决方案1】:

修改你的 Base64ToPNG.js,动作应该是“saveImage”

    Base64ToPNG.prototype.savePDF = function(b64String, params, win, fail) {
        cordovaRef.exec(win, fail, "Base64ToPDF", "saveImage", [b64String, params]);
    };

并且插件在Base64ToPNG.java中有错误改变这个

    String b64String = "";
    if (b64String.startsWith("data:image")) {
        b64String = args.getString(0).substring(21);
    } else {
        b64String = args.getString(0);
    }

    String b64String = "";
    if (args.getString(0).startsWith("data:image")) {
        b64String = args.getString(0).substring(22);
    } else {
        b64String = args.getString(0);
    }

现在插件应该正确格式化字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-17
    • 2018-05-18
    • 1970-01-01
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    • 2016-05-13
    • 2015-02-12
    相关资源
    最近更新 更多