在phonegap中使用allowEdit时,文件名会更改

时间:2014-09-12 04:42:20

标签: android cordova

我正在使用phonegap来创建Android应用程序。我需要从图库中捕获图像。所以我写了下面的代码来捕捉图像

navigator.camera.getPicture(function(imageURI){

    window.resolveLocalFileSystemURI(imageURI, function(fileEntry){
        fileEntry.file(function(fileObj) { 
        console.log(fileObj.name);
        });
    }, fail);
}, fail, { quality: 100, allowEdit : true,
    targetWidth: 600,
    targetHeight: 600,
    destinationType: destinationType.NATIVE_URI,
    sourceType: pictureSource.PHOTOLIBRARY 
});

工作正常并捕获图像。

问题是在相机选项中插入 allowEdit 时图像名称已更改。如果我删除

/*allowEdit : true,
        targetWidth: 600,
        targetHeight: 600,*/

默认图片名称是持久的。

如何在编辑时避免重命名。有人帮助解决这个问题。

1 个答案:

答案 0 :(得分:4)

phonegap / cordova(版本3.3) 中使用" allowEdit:true且目标身高和宽度" 为相机选项相机插件的默认名称为" resize.jpg"

因此它始终存储为 resige.jpg ,并且仅当使用相机拍摄图像时,从图库中选择图像时才会显示。

所以你可以改变 cameraLauncher.java 中的默认字符串(存在于src / org.apache.cordova.camera中)

而不是这个

// Create an ExifHelper to save the exif data that is lost during compression
 String resizePath = getTempDirectoryPath() + "/resize.jpg";
// Some content: URIs do not map to file paths (e.g. picasa).
 String realPath = FileHelper.getRealPath(uri, this.cordova);

替换此

String realPath = FileHelper.getRealPath(uri, this.cordova);
int postition = realPath.lastIndexOf( '.' );
// your image format like jpg or png
String imageFormat = realPath.substring(postition+1);
// your image name 
String imageName = realPath.substring(0,postition);
//now the default name is changed 
String resizePath = getTempDirectoryPath() + "/"+imageName+"."+imageFormat;

注意* 此答案仅适用于Android