我正在使用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,*/
默认图片名称是持久的。
如何在编辑时避免重命名。有人帮助解决这个问题。
答案 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