当前位置: 首页 > 知识库问答 >
问题:

离子导航器,摄像机。getPicture不会从PHOTOLIBRARY返回图像

唐炜
2023-03-14

我已经添加了科尔多瓦插件相机插件到我的离子应用程序,为了使用它的两个adnavtages-使用相机拍照,并从照片库中获取图像。

使用相机拍照在我的Android Galaxy s3设备上可以完美地工作,但是从图库获取图像会在成功结果函数中返回NULL。

我尝试使用$cordovaCamera.getPicture(如此处所述)和此示例中的navigator.camera.getPicture,在我选择设备上的图像后,两者都返回null作为成功方法中的结果参数。

我尝试过使用所有参数,尝试过获取destinationType的3个选项(DATA_URL、FILE_URL和NATIVE_URI),尝试过保存/不保存到gallery,编辑/取消编辑,jpeg的编码类型明确性,mediaType图片等。它们都不适用于PHOTOLIBRARY或SAVEDPHOTOALBUM,但适用于相机

这是我写的代码:

版本 1:

    var options = {
  destinationType: Camera.DestinationType.FILE_URI,
  sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
  correctOrientation: true,
  allowEdit: true
};

$cordovaCamera.getPicture(options)
.then(function (imageURI) {
    if (!imageURI) {
      console.log('getPicture: no image selected');
      return;
    }
    // upload image to server code goes here
  });

版本 2:

    navigator.camera.getPicture(onSuccess, onFail, 
  { 
    destinationType: Camera.DestinationType.FILE_URI,
    sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
    correctOrientation: true,
    allowEdit: true
});

function onSuccess(imageData) {
  console.log(imageData);
  // upload image to server code goes here
}

function onFail(message) {
    alert('Failed because: ' + message);
}

有人能建议可能是什么问题吗?(为什么ImageURI/ImageData为空)也许我在某个地方错过了一些配置?我没主意了...

共有2个答案

万修然
2023-03-14

使用旧版本的插件不是一个好的解决方案,当某些东西不起作用时,您必须打开一个问题http://issues.cordova.io提供您可以提供的所有相关信息,以便开发人员了解问题并修复它。

幸运的是,有人报告了这个问题,https://issues.apache.org/jira/browse/CB-10625,这是固定的。

这些更改将在插件的2.1.1版上可用,但尚未发布。同时,您可以从github url安装插件

ionic plugin add https://github.com/apache/cordova-plugin-camera
缪茂勋
2023-03-14

我在离子框架论坛上问过同样的问题,fajohann回答说,当他安装了一个旧版本的插件时,它工作得很好。我自己也尝试过,一个接一个地安装以前的版本,直到我成功。我发现支持android的最新版本是v1.2.0(在拍摄图像时不返回NULL)

为了安装它,您应该运行以下命令:

离子插件添加cordova-plugin-camera@1.2.0

 类似资料:
  • 我试图捕捉图像和视频从我的android应用程序与默认相机使用意图。 使用上面的代码,我试图捕获图像,在中,我在处的数据中获得了Null 我尝试用意图传递Uri,但Uri为空。 相机意图无法在URI上写入图像。我需要uri以电子邮件发送图像视频。 错误日志

  • 我有一个按钮,它向用户提供选择,他是否想要从画廊或相机的图像。当用户从图库拍摄图像时,我能够成功地将图像上传到Firebase存储,但是当用户选择相机时,我无法将图像上传到存储。这是用户选择相机时的onActivityResult代码 它将图像上传到我的imageview,但给我错误提示 当我尝试上载到存储时 我在stack overflow上遇到了一个类似的问题。 我认为公认的答案是错误的,因为

  • 我已经开发了一个应用程序来拍摄一张照片并保存在画廊里。我在网上搜索过,我能练习的最简单的方法就是使用。下面是从相机上拍照的代码。注意,我在这个类中使用的是fragment。 获取捕获的图像并将其转换为字符串 我将字符串保存到全局变量中,以便其他活动可以访问它。在另一个活动中,我有一个按钮,通过访问图像字符串将图像保存到文件夹/图库中。 它可以将图像保存到文件夹/图库中......但是图像质量很低.

  • 在我的应用程序中,用户从相机捕获图像或从图库中选择图像,然后将其转换为pdf并上载到服务器,现在我的问题是,从相机捕获的图像在某些设备上旋转,我有代码尝试解决此问题,但它不起作用 任何建议或问题在哪里,没有错误代码或任何东西

  • 我一直在运行一个从多个相机拼接图像的项目,但我认为我遇到了瓶颈......我对这个问题有一些问题。 我想尝试在未来将它们安装在车辆上,这意味着相机的相对位置和方向是固定的。 此外,由于我使用多个摄像机,并尝试使用单应性从中缝合图像,我将尽可能靠近摄像机,以减少误差(由于摄像机的焦点不在同一位置,并且摄像机占据一定空间是不可能的)。 这是我的实验短片http://www.youtube.com/wa

  • 摄像机 通过在三维空间中布置和移动游戏对象来创建 Unity 场景。而观察者的屏幕是二维的,因此需要通过某种方式来来捕获视图,并使之平面化,才能显示在屏幕上。这个过程通过 摄像机 Camera 完成。 摄像机是一个游戏对象,定义了场景空间的观察视图。它的位置定义了观察点,它的向前轴(Z)和向上轴(Y)分别定义了观察方向和屏幕的垂直方向。摄像机组件 Camera 还定义了视椎体(落入观察视图的区域)