ngCordova将照片保存到图库

时间:2015-12-08 07:07:02

标签: cordova ionic-framework ionic ngcordova

使用http://ngcordova.com/我在尝试将照片保存到Android上的图库时遇到了问题。

在使用以下选项拍摄照片后,文件最初没有传回图像数据;

var options = {
    destinationType: Camera.DestinationType.FILE_URI,
    sourceType: Camera.PictureSourceType.CAMERA,
    encodingType: Camera.EncodingType.JPEG,
    correctOrientation: true,
    saveToPhotoAlbum: true
};

我发现为了解决这个问题,由于forum,我不得不将相机插件从0.3.6降级到0.3.5。

保存的例程如下;

$cordovaCamera.getPicture(options).then(function (imagePath) {
  var currentName = imagePath.replace(/^.*[\\\/]/, '');
  var d = new Date(),
  n = d.getTime(),
  newFileName = n + ".jpg";

  //Move the file to permanent storage
  $cordovaFile.moveFile(cordova.file.externalRootDirectory, currentName, cordova.file.externalRootDirectory + "DCIM/Camera", newFileName).then(function(success){
        //sucess

        }, function(error){
          //an error occured
          //Booooooo
        });

我不想要硬编码路径,但只是在测试是否可以将照片放在正确的目录中。我曾尝试过这个post的目录。

虽然cordova.file.tempDirectory始终为null,但我在Nexus 5上找到了。

用于保存到图库的相机插件是否存在错误,或者它是否已针对Android正确实现。

欢呼任何帮助。

1 个答案:

答案 0 :(得分:0)

我认为您需要对#!/usr/bin/env python import rospy import sys import time import os from nav_msgs.msg import OccupancyGrid from nav_msgs.msg import MapMetaData from std_msgs.msg import String from std_msgs.msg import Float64 from std_msgs.msg import Int8MultiArray def callback(OccupancyGrid): mapdata.data = OccupancyGrid.data pub = rospy.Publisher('mapprob', Int8MultiArray, queue_size=10) pub.publish(mapdata) def somethingCool(): global mapdata mapdata = Int8MultiArray() rospy.init_node('test_name', anonymous=False) rospy.Subscriber("map", OccupancyGrid, callback) rospy.loginfo(mapdata) rospy.spin() if __name__ == '__main__': try: somethingCool() except rospy.ROSInterruptException: pass 目录进行硬编码。

您可以从cache

了解缓存目录

只需删除文件名,然后您将获得imagePath目录,相机插件会保存您的照片,然后根据需要将其移至cache目录

*我已经测试了它,在我的例子中,external目录是 cache