我试图允许用户通过小部件保存图像。我正在使用以下功能:
buildfire.services.camera.getPicture({},
function (err, imageData) {
if (imageData) {
document.getElementById("imgPic").src = imageData;
} else {
console.log("no image selected: " + err);
}
}
);
imageData会产生来自用户手机的本地链接,例如:
file:///storage/emulated/0/Android/data/com.buildfire.previewer/cache/1503099575571.jpg
如果我通过调整器(buildfire.imageLib.resizeImage)运行它,我会得到如下信息:
http://czi3m2qn.cloudimg.io/s/width/1600/file:///storage/emulated/0/Android/data/com.buildfire.previewer/cache/1503104990327.jpg
不确定此链接是否安全,或者以后是否会被垃圾收集..
如何将相机拍摄的实际图像保存到 buildfire 的数据库中?
编辑:
正如你所建议的,我正在使用 html2canvas 来保存我的图像。我将本地图像加载到 DOM,在尝试保存之前,我会像这样处理它:
onrendered: canvas => {
const img = canvas.toDataURL();
imageList.push(img);
}
我的图像变成了画布,然后我运行 toDataURL()。但是当我尝试保存这个非常长的图像数据字符串时,它并没有保存。
在我将数据保存到 buildfire 之前,您可以在第一个粉红色框中看到我的数据。在第二个粉红色框中,您可以看到我的 buildfire 查询的结果。我没有收到错误,但图像数据没有保存。为了验证数据是否已成功保存,蓝绿色框相互匹配。似乎字符串可能太大而无法保存?