我正在尝试使用navigator.camera对象捕获图像并将其推入img标记。我正在做的演示在这样的phonegap文档中说:
if(navigator.camera) {
navigator.camera.getPicture(function(imageData){
var $image = document.getElementById('imageForTask');
image.src = "data:image/jpeg;base64," + imageData;
console.log(imageData);
}, null, {sourceType:1, quality: 50});
} else {
alert("Camera not supported on this device.");
}
当我这样做时,我在imageForTask中得到一个断开的链接。这就是消息来源所说的:data:image/jpeg;base64,content://media/external/images/media/325
。有谁知道为什么这不起作用?我已经和它搏斗了一段时间。谢谢!
-Geoff
答案 0 :(得分:4)
默认的destinationType已从DATA_URL更改为FILE_URI。如果添加选项:
destinationType : Camera.DestinationType.DATA_URL
到您传递的图片以获取图片,您可以将其设置为base64编码数据。
http://docs.phonegap.com/en/1.6.1/cordova_camera_camera.md.html#cameraOptions_options
答案 1 :(得分:0)
content://media/external/images/media/325
是图像的路径,而不是其实际的二进制数据。您需要使用文件系统API来获取文件的内容,base64对其进行编码并使用它。