2012-01-18 90 views
5

访问图像

var pictureSource; // picture source 
    var destinationType; // sets the format of returned value 
    var photoid=window.localStorage.getItem("photoid"); 
    var photoData=null; 
    // Wait for PhoneGap to connect with the device 
    // 
    document.addEventListener("deviceready",onDeviceReady,false); 

    // PhoneGap is ready to be used! 
    // 
    function onDeviceReady() { 
     pictureSource=navigator.camera.PictureSourceType; 
     destinationType=navigator.camera.DestinationType; 

    } 

    // A button will call this function 
    // 
    function getPhoto(source) { 
     alert("Entered sd card"); 
     // Retrieve image file location from specified source 
     navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50, 
            destinationType: destinationType.FILE_URI, 
            sourceType: source }); 
    } 

    function onPhotoDataSuccess(imageData) { 
     console.log(imageData); 

     // Get image handle 
     var smallImage = document.getElementById('photos'); 

     // Unhide image elements 
     // 
     smallImage.style.display = 'block'; 

     // Show the captured photo 
     // The inline CSS rules are used to resize the image 
     // 
     smallImage.src = "data:image/jpeg;base64," + imageData; 
     alert(imageData); 
     photoData = imageData; 
     window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 
    } 

    function gotFS(fileSystem) { 
     fileSystem.root.getFile("/sdcard/external_sd/"+photoid+".jpg", null, gotFileEntry, fail); 
    } 

    function gotFileWriter(writer) { 
     writer.onwrite = function(evt) { 
      alert("write success"); 
     }; 
     writer.write(photoData); 
    } 

    function fail(error) { 
     alert(error.code); 
    } 


    /* function onPhotoURISuccess(imageURI) { 
     // Uncomment to view the image file URI 
     console.log(imageURI); 
     alert("photo captured"); 
     uploadPhoto(imageURI); 
    } */ 

    /* function getPhoto(source) { 
     // Retrieve image file location from specified source 
     navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50, 
            destinationType: destinationType, 
            sourceType: source }); 
    } */ 

    // Called if something bad happens. 
    // 
    function onFail(message) { 
     alert('Failed because: ' + message); 
    } 

我已经使用了上面的代码在SD卡来访问数据。但是现在我需要做的是,获取当前图像的路径并将其放入可以访问路径并显示这些图像的diff对象。我不知道如何去做。 任何帮助表示赞赏。

+0

你需要用户选择的图像的路径,或所有图像的路径? – ghostCoder 2012-01-18 05:48:26

+0

它不清楚你想达到什么。请编辑并更清楚一点。一个用例就是好例子。 – ghostCoder 2012-01-18 05:50:11

+0

我需要创建一个包含SD卡中所有图像路径的对象。即我需要能够通过另一个具有图像路径的对象访问所有SD卡图像,并且应该能够打开所有图像。 – Khush 2012-01-18 06:01:49

回答

2

你可以做的是为你正在开发的平台编写一个phonegap插件。我会认为它是机器人。 Writing android plugins.
当你调用Phonegap.exec调用插件,该插件,获得通过

Environment.getExternalStorageDirectory().getAbsolutePath() 

SD卡路径,然后就一个基本的搜索,获得所有的jpg和.png文件,并返回一个json文件的所有路径。

+0

这可能是其中一个选项。但我现在正在寻找的是我可以得到SD卡中的图像列表?我想要相同的代码为Android和IOS工作。 – Khush 2012-01-18 06:38:34

+0

你将不得不为这个工作编写单独的插件。你可以用我描述的方式轻松获得图像列表。 – ghostCoder 2012-01-18 07:03:37

+0

我有没有其他选择为SD卡图像制作单独的图库并显示它们? – Khush 2012-01-18 08:59:43