使用cordova相机插件时,如何检查低分辨率照片?

时间:2017-02-27 01:37:24

标签: cordova camera cordova-plugins

我有以下代码。它几乎适用于大部分时间。我想用蹩脚的相机捕捉人们,有些人警告他们他们的照片会发臭。 (使用“cordova-plugin-camera”版本2.3.0)

           var cameraOpts = {
                quality: 100,
                // destinationType: Camera.DestinationType.FILE_URI,
                destinationType: Camera.DestinationType.DATA_URL,
                sourceType: $scope.sourceType,
                allowEdit: false,
                encodingType: Camera.EncodingType.JPEG,
                // popoverOptions: CameraPopoverOptions,
                targetWidth: 186,
                targetHeight: 1024,
                saveToPhotoAlbum: true,
                correctOrientation: true
            };

            $cordovaCamera.getPicture(cameraOpts).then(function(imageData) {
                var image = "data:image/jpeg;base64," + imageData;
                $scope.setUpImage(index,image);

            }, function(err) {
                // error
                $scope.showAlert('Warning!', 'Camera cancelled!');
            });

任何想法都将不胜感激。我正在寻找一种方法来捕捉低分辨率照片,并向用户发送消息。

2 个答案:

答案 0 :(得分:0)

cordova相机插件提供质量相机选项,但它不提供任何有关分辨率的信息(默认为100)(enter link description here

答案 1 :(得分:0)

您应该创建一个Image对象(这是标准的HTML5 API)

从此回答中复制的相关代码段:

HTML5 - how to get image dimension

来自插件doc:“图像作为Base64编码的String传递给成功回调,或者作为图像文件的URI传递”

如果您在相机插件中选择base64格式,则数据URI将为

'data:image/jpg;base64,' + imageData

但是,插件文档会推荐文件格式,该格式会返回一个文件网址,您可以将其直接指定给image.src

var image = new Image();
        image.onload = function(evt) {
            var width = this.width;
            var height = this.height;
            alert (width); // will produce something like 198
        };

        //here is where you pass the camera data to create the image
image.src = imageData; 

正如您所看到的,该方法是异步的,您可以将其包装在Promise中,或者在加载图像时发出事件并且您具有宽度x高度