我有一个phonegap应用程序,它有多个输入字段,包括textboxes / textareas / signature / cad sketch / camera images。该数据通过ajax帖子上传到服务器。
问题:
上传数据时,文件过大会因图像而需要花费大量时间上传。当没有添加照片时,大小约为200kb - 400kb,但是图像文件已经达到60Mb,并且在使用互联网连接不良的Android设备(信号不良的区域)方面,这是无法使用的。
我尝试了什么:
我在相机选项中使用了图像压缩,如下面的代码摘录所示,但我面临的挑战是使用具有不同相机规格的不同设备,因此如果设备的相机质量较差,相比之下无论如何图像质量都会很差,都会进行高质量的相机图像压缩。
var cameraOptions = {
destinationType: Camera.DestinationType.DATA_URL,
quality: 40,
encodingType: 0,
};
参考phonegap相机API和选项:
http://docs.phonegap.com/en/2.0.0/cordova_camera_camera.md.html#Camera
通过阅读以下帖子,我推断jpeg是最轻的格式,因此使用了endodingType为0
PNG vs. GIF vs. JPEG vs. SVG - When best to use?
我们想要实现的目标:
将图像大小限制为每张图像最大500kb,如果它大于压缩它的图像大小。
答案 0 :(得分:5)
我尝试了不同的相机选项,以下我从iPhone 5获得了4.5MB的文件大小:
navigator.camera.getPicture(onSuccess, onFail, {
destinationType : Camera.DestinationType.DATA_URL,
sourceType : Camera.PictureSourceType.CAMERA,
quality : 50,
encodingType : Camera.EncodingType.JPEG
});
仅添加行
correctOrientation : true
文件大小减少到~500kB。
我没有解释为什么它应该以这种方式工作,但如果质量属性似乎没有做任何事情,我建议你尝试一下。