拍照后如何打开安卓图库?

Posted

技术标签:

【中文标题】拍照后如何打开安卓图库?【英文标题】:How to open android gallery after taking picture? 【发布时间】:2016-09-07 00:12:37 【问题描述】:

有没有办法打开设备库,例如单击类型文件的输入并选择刚刚用设备相机拍摄的照片?

我的问题是我已经有一个文件输入,但现在当我点击它时,我打开相机拍照。拍照后是否可以打开设备库,选择我刚拍的照片上传?

现在我正在使用 base 64 编码。我不想那样,因为我已经有一个 php 和 ajax 上传,我已经使用了普通图像。

我的代码:

$(document).ready(function()
  $('#file_input').on('click', function(e)
    e.preventDefault();
    navigator.camera.getPicture(onSuccess, onFail,  
      quality: 100,
      destinationType: Camera.DestinationType.DATA_URL
    );
    function onSuccess(imageData) 
      // here I can upload imageData to the server
    
    function onFail(message) 
      alert('Failed because: ' + message);
    
  );
)

或者有没有办法像我输入文件并从图库中选择一样获取刚刚拍摄的照片?

编辑:

我找到了另一种解决问题的方法,而无需在拍照后打开图库。

我得到了像现在这样的图像,采用 base64 格式。我使用 AJAX 将其传递给 PHP,然后使用 base64_decode() 对其进行解码,然后使用 file_get_contents() 将其保存到服务器,然后是数据库的基本保存路径。就是这样。成功。

虽然我似乎无法找到在我的设备上拍摄的照片。有谁知道它可以存储在哪里。还是拍照后必须手动保存?

【问题讨论】:

你可以直接获取拍摄的图像,为什么要在拍摄后打开画廊?? 因为我得到了它,但它是用base64编码的,我不想像那样将它保存在数据库中。 但您可以将图像的路径保存到数据库中,这是将图像存储到数据库中的首选方式 如何获取路径? 您需要从 android 端传递位图并将其移动到服务器上所需的文件夹之一,并将该文件夹路径存储到您的数据库中 【参考方案1】:

我认为你对 android 端很好。你正在获取 base64 编码的图像。现在这里是 link,你可以在其中找到如何将图像移动到服务器上的所需位置以及何时完成,你可以存储数据库中该文件夹的路径

通过这种方式,您的数据库性能不会受到影响,因为您将只在数据库中存储路径 要获取捕获的图像,请直接关注此link 并查看由 奥古斯托·皮恰尼

【讨论】:

你的意思是将base64编码的图片保存到数据库中? @Anonymous 不不,您将在服务器端有一个文件夹,将所有图像放入该文件夹并将该文件夹的路径保存到数据库中 @Anonymous 以及如何放置从 android 端选择和上传的图像在第一个链接中得到了很好的解释 @Anonymous 你觉得它有用吗? 不完全。我已经有 php 脚本和一个 ajax 脚本来将图像路径保存到数据库中。我不知道如何获得路径。在 php 中解码图像不会返回图像的路径。它返回图像的编码字符串。【参考方案2】:

 $('#file_input').on('click', function(e)
    e.preventDefault();
    navigator.camera.getPicture(onSuccess, onFail,  
      quality: 100,
      destinationType: Camera.DestinationType.FILE_URI,
	  sourceType: 2, // 1 for camera, 2 for gallery
	  allowEdit: true, // Can edit the pictures and lets the user pick gallery app
	  mediaType: Camera.MediaType.PICTURE,
	  encodingType: Camera.EncodingType.JPEG,
	  popoverOptions: CameraPopoverOptions,
	  // targetWidth: 500,
	  // targetHeight: 500,
	  saveToPhotoAlbum: false,
	  correctOrientation: true // false: switches the height and width ); 
    );
    function onSuccess(imageData) 
      // here I can upload imageData to the server
    
    function onFail(message) 
      alert('Failed because: ' + message);
    
  );

【讨论】:

我想你误会了我。我首先需要用相机拍照,然后打开图库以获取我拍摄的照片。现在它只打开选项卡以从图库中进行选择。

以上是关于拍照后如何打开安卓图库?的主要内容,如果未能解决你的问题,请参考以下文章

React Native - 直接打开安卓图库

如何将图像保存到图库 Android 应用程序

React Native Camera:拍照后,如何将其保存在应用程序本身而不是保存在图库中?

Android 11拍照强制声音

为啥华为手机拍了照片保存不了怎么回事

html 5中的拍照按钮