【问题标题】:convert canvas to imageURI将画布转换为 imageURI
【发布时间】:2014-04-13 12:56:32
【问题描述】:

我使用Phonegap (Cordova) 开发应用程序,但在尝试将画布转换为 imageURI 并将其保存到 sdcard 时遇到问题。

这是我的代码:

function saveCanvasAsImage(imageURI) {

            var gotFileEntry = function(fileEntry) {
                var gotFileSystem = function(fileSystem) {
                    var d = new Date();
                    var n = d.getTime();
                    // copy the file
                    fileEntry.moveTo(fileSystem.root.feelathome, n + ".jpg", null, null);
                };
                // get file system to copy or move image file to
                window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFileSystem, fsFail);
                alert("Image Capture Success");
            };
            //resolve file system for image
            window.resolveLocalFileSystemURI(document.getElementById("canvas").toDataURL("image/png").replace(/^data:image\/(png|jpg);base64,/, ""), gotFileEntry, fsFail);

    }
//file system fail
function fsFail(error) {
    alert("failed with error code: " + error.code);
}

我有错误失败 5 我哪里错了?

【问题讨论】:

  • 画布上画了什么?唯一在其中绘制某些东西(图像)的尝试被注释掉了。 “base64”函数中的变量“path”是做什么用的?
  • 如您所见,我没有使用路径变量。他在那里是因为我测试了一些你可以忽略的东西。第二个在画布内我有一些图像。我试图将这些图像转换为一张并将其保存在我的应用程序文件夹中。谢谢。
  • 好的,但是画布中的图像呢?我的意思是,您在这段代码中创建了画布,获取了上下文并将空画布保存为 base64。您是否删除了向此新画布添加图像的行,还是要使用现有画布?
  • 我没有挖掘我只是想保存它的行
  • 好吧,现在关于“getImageURI”函数......它应该获取图像URI,而不是base64字符串。 “window.resolveLocalFileSystemURI”最终会调用“fsFail”函数吗?

标签: javascript android cordova canvas


【解决方案1】:

Canvas 在大多数版本的 android 的 webview 中都不能正常工作。

为了能够在任何版本的 android 中正确地将画布转换为文件,您可以使用 Canvas2ImagePlugin :https://github.com/devgeeks/Canvas2ImagePlugin

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-04
    • 2016-05-27
    • 2019-12-17
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-25
    相关资源
    最近更新 更多