我必须更改什么才能使CordovaCamera不再制作Square照片?
现在,当我调用此代码时:
var options = {
quality: 100,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: Camera.PictureSourceType.CAMERA,
allowEdit: true,
encodingType: Camera.EncodingType.JPEG,
// targetWidth: 1600,
// targetHeight: 1280,
popoverOptions: CameraPopoverOptions,
saveToPhotoAlbum: false,
correctOrientation:true
};
$cordovaCamera.getPicture(options).then(function (imageData) {
$scope.imgURI = "data:image/jpeg;base64," + imageData;
它打开相机,你拍照,然后你得到一个屏幕,你看到一个正方形。当您说"使用照片"时,它会保存正方形内的图片部分。
如果您使用 allowEdit: true,
,拍照后它会进入裁剪屏幕,裁剪屏幕总是裁剪一个正方形。
如果您不想要正方形,请使用allowEdit: false,
,您将使用原始大小的原始图像。
编辑:经过更多的研究,我可以看到这实际上仍然要求您裁剪图像。在我的应用程序中,我一直想对图像进行方形处理,因此这对我来说还不是问题。
也许您可以在Ionic论坛上查看这篇文章,该论坛似乎对如何解决此问题提出了一些建议。
https://forum.ionicframework.com/t/cordova-camera-crop/14661/7
源语言:你已经注释掉了 targetWidth 和 targetHeight 变量。如果取消注释这些行,然后将每行设置为高度和宽度(以像素为单位)。
例如,下面的代码将尝试获取 1080p 图像的目标宽度(1920px x 1080px)
var options = {
quality: 100,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: Camera.PictureSourceType.CAMERA,
allowEdit: true,
encodingType: Camera.EncodingType.JPEG,
targetWidth: 1920,
targetHeight: 1080,
popoverOptions: CameraPopoverOptions,
saveToPhotoAlbum: false,
correctOrientation:true
};
您必须在此处.java文件中更改以下代码
平台\安卓\src\org\apache\cordova\camera\CameraLauncher.java在第 436 行之后
cropIntent.putExtra("crop", "true");
cropIntent.putExtra("aspectX", 1);
cropIntent.putExtra("aspectY", 1);
cropIntent.putExtra("outputX", 700);
cropIntent.putExtra("outputY", 700);
cropIntent.putExtra("return-data", true);