我正在尝试在 ionic angular.js 中将相机插件与 cordova 应用程序一起使用。我的问题是,当我获取图片时,它给我的是图像的 url,而不是 base64 字符串 我需要 base64 字符串。 在 Services.js 中
.factory('Camera', function($q) {
return {
getPicture: function(options) {
var q = $q.defer();
navigator.camera.getPicture(function(result) {
q.resolve(result);
}, function(err) {
q.reject(err);
}, options);
return q.promise;
}
}
});
我使用上面的代码返回
file:///storage/emulated/0/Android/data/com.example.app/cache/1313513121.jpg
但是我想要base64字符串,因为我将它发送到服务器以将图像保存在服务器中 在 Controller.js 中
$scope.AddImage = function () {
var options = {
quality : 75,
targetWidth: 200,
targetHeight: 200,
sourceType: 1
};
Camera.getPicture(options).then(function(imageData) {
alert(imageData);
var item={
image: imageData
}
Pictures.push(item);
$scope.Photos = Pictures;
}, function(err) {
console.log(err);
});
}
我在上面写了代码。我该如何解决这个问题
提前致谢
最佳答案
在[cameraOptions]
上使用值为DATA_URL
的destinationType
选项参数>.
navigator.camera.getPicture( cameraSuccess, cameraError, [ cameraOptions ] );
选项destinationType: Camera.DestinationType.DATA_URL
将允许您拍照并检索 Base64 编码的图像。默认设置为destinationType: Camera.DestinationType.FILE_URI
,它将检索图像文件位置。
下面是一般代码示例,您可以使用它来调整现有代码。
navigator.camera.getPicture(onSuccess, onFail, { quality: 50,
destinationType: Camera.DestinationType.DATA_URL
});
function onSuccess(imageData) {
var image = document.getElementById('myImage');
image.src = "data:image/jpeg;base64," + imageData;
}
function onFail(message) {
alert('Failed because: ' + message);
}
文档 here
关于javascript - Angular JS 相机插件 base64 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44819153/