我正在使用离子框架,我遇到了一个小问题。我有一个名为' upload'的按钮。当我点击它时,我使用' $ cordovaCamera'拍照。我收到的图像为base64字符串,然后我有一个名为' $ scope.hold'的变量。它存储base64字符串(imageData)。
问题是我拍摄图像后立即弹出的图像模糊不清。我不确定错误是什么 - 我有' 100'作为'质量'在我的选项'变量。有人请指教?我知道有更好的方法来做到这一点而不是base64但我现在坚持这种方法。
在我的HTML文件中,我有:
<img id="pic" data-ng-src="data:image/jpeg;base64,{{hold}}" width="100%" />
我的javascript控制器看起来像:
$scope.upload = function() {
var options = {
quality: 100,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
allowEdit: true,
encodingType: Camera.EncodingType.JPEG,
targetWidth: 100,
targetHeight: 100,
popoverOptions: CameraPopoverOptions,
saveToPhotoAlbum: false,
correctOrientation:true
};
$cordovaCamera.getPicture(options).then(function(imageData) {
alert("Got it!!");
$scope.hold = imageData;
}, function(err) {
alert("We have an error: " + error );
});
};
提前致谢!
答案 0 :(得分:0)
使用以下代码,图像模糊的主要原因是因为您将质量设置为100.更改质量并查看更改
var options = {
quality : 75,
destinationType : Camera.DestinationType.DATA_URL,
sourceType : Camera.PictureSourceType.CAMERA,
allowEdit : false, //To enable/disable the user editing in camera
encodingType: Camera.EncodingType.JPEG,
targetWidth: 640,
targetHeight: 400,
popoverOptions: CameraPopoverOptions,
saveToPhotoAlbum: false
};