2012-01-18 86 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