function readFile() {
    function onFileReadAsDataURL(evt) {
        var img = document.getElementById('camera_image');
        img.style.visibility = "visible";
        img.style.display = "block";
        img.src = evt.target.result;
        log("FileReader.readAsDataURL success");
    };

    function onFileReceived(file) {
        log('Got file: ' + JSON.stringify(file));
        fileObj = file;

        var reader = new FileReader();
        reader.onload = function() {
            log('FileReader.readAsDataURL() - length = ' + reader.result.length);
        };
        reader.onerror = logCallback('FileReader.readAsDataURL', false);
        reader.readAsDataURL(file);
    };
    // Test out onFileReceived when the file object was set via a native <input> elements.
    if (fileObj) {
        onFileReceived(fileObj);
    } else {
        fileEntry.file(onFileReceived, logCallback('FileEntry.file', false));
    }
}
Select image from library using a NATIVE_URI destination type
This calls FileEntry.getMetadata, FileEntry.setMetadata, FileEntry.getParent, FileEntry.file, and FileReader.readAsDataURL.