Image 需要以字节为单位计算图像大小-用于phonegap摄像头的图像

Image 需要以字节为单位计算图像大小-用于phonegap摄像头的图像,image,cordova,phonegap-build,Image,Cordova,Phonegap Build,我正在开发一个功能,在从本机相机捕获图像后,我正在上传图像。这里,对图像的大小有一个限制。因此,我需要以MB为单位计算图像大小 Camera.getPicture(gotPicture, cameraError, { quality: 50, allowEdit: true, targetWidth: 20

我正在开发一个功能,在从本机相机捕获图像后,我正在上传图像。这里,对图像的大小有一个限制。因此,我需要以MB为单位计算图像大小

Camera.getPicture(gotPicture, cameraError, {
                                quality: 50,
                                allowEdit: true,
                                targetWidth: 200,
                                targetHeight: 200,
                                destinationType: Camera.DestinationType.DATA_URL
                            });
camera
                        .getPicture(
                            gotPicture,
                            cameraError, {
                                quality: 100,
                                allowEdit: true,
                                targetWidth: 200,
                                targetHeight: 200,
                                sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
                                destinationType: Camera.DestinationType.DATA_URL
                            });
我发现很多建议将其另存为文件,但在这里我将其作为数据URI接收(因为我需要传递Base64图像进行处理)

有人可以帮助计算从照片库中单击/引用的图像的实际大小吗

我还有一个问题,当我调用Phonegap API时,是否在API级别进行大小压缩


提前感谢

您可以获得图像的大小和Base64数据,如下所示:

函数capturePhoto(){
navigator.camera.getPicture(onPhotoDataSuccess,onFail,{质量:50,
destinationType:Camera.destinationType.FILE\u URI,
saveToPhotoAlbum:true});
}
函数onPhotoDataSuccess(imageURI){
getSize(imageURI);
}
函数onFail(消息){
警报(“失败”);
}
函数getSize(fileUri){
window.resolveLocalFileSystemURL(
fileUri,
函数(文件条目){
getMetadata(函数(元数据){
警报(“大小为”+元数据.size);
},再错误);
fileEntry.file(函数(文件){
var reader=new FileReader();
reader.onloadend=函数(evt){
警报(evt.target.result);
};
reader.readAsDataURL(文件);
},再错误);
},
再错误);
}
函数错误(错误){
警报(“错误”);

}
我认为没有一个完整的答案。大小将取决于设备摄像头。因此,我宁愿尝试找出如何将给定的图片压缩到所需的大小,而不是尝试为每个设备获得合适的质量。这里,当我选择2.5MB的图像时,它显示的大小是:178908&当我选择8.9MB的图像时,它显示的大小是:88412,这是不正确的。我使用了上面给出的代码。请帮忙。