我正在使用以下
phonegap 3.6.0-0.21.18
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>
我需要在phonegap中本地裁剪一个图像,使其宽度为650px,高度为250px。我用来实现它的调用如下所示。由于某些原因,当目标类型为DATA_URL时,phonegap认为没有必要使用相机启动裁剪工具。
navigator.camera.getPicture(onPhotoDataSuccess, onFail, {
quality: 45,
allowEdit: true, <-- Forces the crop tool to appear if target sizes are different
targetWidth: 650,
targetHeight: 250,
destinationType: destinationType.DATA_URL, <--- Changed this to work
sourceType : Camera.PictureSourceType.CAMERA,
correctOrientation: true
});
但当我用相机更改destinationType:destinationType.FILE_URI时,裁剪工具会在拍摄照片后打开进行裁剪。
裁剪工具出现时,我尝试与画廊和相同的参数
navigator.camera.getPicture(onPhotoURISuccess, onFail, {
quality: 45,
allowEdit: true, <-- Forces the crop tool to appear if target sizes are different
targetWidth: 650,
targetHeight: 250,
destinationType: destinationType.DATA_URL, <-- Didnt have to change for the crop tool to open
sourceType: pictureSource.SAVEDPHOTOALBUM,
mediaType : Camera.MediaType.PICTURE,
correctOrientation: true
});
我不明白相机和画廊电话之间的区别。这两个代码都使用目标类型作为destinationType.DATA_URL。对于相机,裁剪工具不会打开,而对于画廊,裁剪工具会打开。这是android或phonegap中的一些错误吗?
我认为这是javascript中的一个性能问题。我没有尝试原生裁剪图像,但我在iOS中有内存问题。我捕获base64字符串(DATA_URL),并使用javascript插件对其进行编辑。我想你也需要base64图像。否则,FILE_URI更好。
看看John Wargo的回答,也许这对你有帮助
这个cordova文档:
注意:更新设备上的照片分辨率非常好。已选择照片来自设备图库的图片并没有缩小到更低的质量,甚至如果指定了质量参数。为了避免常见的存储器问题,将Camera.destinationType设置为FILE_URI,而不是DATA_URL。