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

Cordova相机插件,从图库中获取完整的图像路径[ANDROID]

上官恩
2023-03-14

我正在尝试使用cordova相机插件从画廊获取图像,这是我的方式:

navigator.camera.getPicture(onSuccess, onFail, {
  quality: 50,
  sourceType: Camera.PictureSourceType.SAVEDPHOTOALBUM,
  destinationType: Camera.DestinationType.FILE_URI,
  mediaType: Camera.MediaType.ALLMEDIA,
  encodingType: Camera.EncodingType.JPEG
});

但是在我的“成功”函数中,我得到格式为:

"content://com.android.providers.media.documents/document/image%3A1509"

我想要具有图像完整路径的URI,就像我使用相机时得到它一样:

"file:///storage/emulated/0/Pictures/IMG_20150710_124222.jpg"

阅读官方文档,我看到我唯一应该做的就是将属性“DestinationType”设置为“FILE_URI”,正如您在上面所看到的。

我做错了什么?

共有3个答案

姜奇
2023-03-14

我猜你代码中的问题就在这里

mediaType: Camera.MediaType.ALLMEDIA,

要么去掉这条线,要么让它

 mediaType: Camera.MediaType.PICTURE,

快乐编码....

乐正光誉
2023-03-14

您也可以在确认框的帮助下使用单个按钮进行操作:

var txt=confirm("Select photo source");
if(txt==true){
         navigator.camera.getPicture(onSuccess, onFail, { quality: 50,destinationType: Camera.DestinationType.DATA_URL,saveToPhotoAlbum: true,sourceType: Camera.PictureSourceType.CAMERA});
}
else{
    navigator.camera.getPicture(onSuccess, onFail, { quality: 50,destinationType: Camera.DestinationType.DATA_URL,saveToPhotoAlbum: true,sourceType: Camera.PictureSourceType.PHOTOLIBRARY});
}

如果确定,则相机打开,否则如果您单击取消,则Galery打开

您也可以根据需要定制确认按钮的确定-取消按钮。

柴辰阳
2023-03-14

我发现了一个插件,可以转换“内容://...”中的URI格式化为完整的文件路径,这不是完美的解决方案,但它对我来说是有效的,插件是cordova-plugin-filepath,我在getCamera函数的onSuccess回调中使用它:

function onSuccess(imageURI) {
  window.FilePath.resolveNativePath(imageURI, function(result) {
    // onSuccess code
    imageURI = 'file://' + result;
    . . .
  }, function (error) {
    // onError code here
  }
}
 类似资料:
  • 我在页面中有一个图像滑块,我想通过单篇文章放置图像,wordpress提供get_post_gallery功能通过单篇文章获取图像,这一阶段已经完成,但问题是它显示缩略图图像,我想在滑块上显示完整图像,就像我们在特色图像场景中所做的那样$img=wp\u get\u attachment\u image\u src(get\u post\u缩略图\u id($post- 我想根据我在functio

  • 我正在创建一个应用程序,从画廊上传选定的图像,并上传到一个网络服务。web服务需要所选图像的文件名以及文件内容的base64编码。我已经设法用硬编码的文件路径实现了这一点。然而,我很难获得图像的真实文件路径。我在网上看了很多资料,找到了这段代码,但它对我不起作用: 我得到这个错误: 编辑 忘了提到我正在使用Kitkat。看起来我的问题与KitKat有关。我发现了这个(见下文),它帮助我让我的应用程

  • 我正在尝试使用Apache Cordova摄像机API来显示从摄像机检索到的图像。我接到了摄像头的电话,可以点击图片。我得到的文件url为 file:///mnt/.....something.jpg 现在,我无法使用jQuery在现有图像标记中设置此图像。 我使用的代码是: 其中 imageData 是相机成功回调的返回值。 Cordova图像功能的选项,我正在使用 目标类型 = 0;源类型 =

  • 如何获取相机捕获的原始图像的路径或uri。当我使用下面的代码时,它会返回google文档中提到的原始图像的缩略图。我想要原始图像的路径或uri。 我使用了以下代码,但它返回一个缩略图。

  • 问题内容: 我有一个可以制作图片并上传图片的应用。上载需要照片的文件路径,但无法获取。 这是我的代码: 请帮助我获取文件路径。 谢谢 问题答案: 发布到Twitter时,需要在发布请求中发送图片在设备上的实际路径。我发现很难找到实际的路径,而且经常会发现错误的路径。 为了解决这个问题,一旦有了a ,我就可以使用来获取。随后,我使用实例获取设备上的实际路径。 这是生产代码,并且经过了自然测试。;-)

  • 我想使用共享命令从图库获取图像。 我目前的代码是: imageUri 的值为:content://media/external/images/media/37 但是函数“openInputStream”会抛出错误“java.io.FileNotFoundException”。 通过下面的函数,我得到了图像的真实路径。 但我不知道如何将其转换为位图。