科尔多瓦相机总是一张方形照片



我必须更改什么才能使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);

最新更新