|
发表于 2017-9-22 14:42:26
|
显示全部楼层
代码如下:
//调用拍照,成功则返回base64编码字符串
navigator.camera.getPicture(onSuccess, onFail, {
destinationType:navigator.camera.DestinationType.DATA_URL,
quality:70,
targetWidth:768,
targetHeight:1024,
sourceType : 1,
saveToPhotoAlbum:true
});
//拍照成功调回
function onSuccess(imageURI) {
var dfd = $.Deferred();
saveDataTofilesystem("/巡视/tangfengfan11.jpg",imageURI,dfd);//存成图片
dfd.resolve();
}
//base64编码转化为bold
function convertBase64UrlToBlob(Base64code) {
// var bytes=window.atob(base64code.split(',')[1]);
// //去掉url的头,并转换为byte
var bytes = window.atob(Base64code);
// 处理异常,将ascii码小于0的转换为大于0
var ab = new ArrayBuffer(bytes.length);
var ia = new Uint8Array(ab);
for (var i = 0; i < bytes.length; i++) {
ia = bytes.charCodeAt(i);
}
return new Blob([ab], {
type : 'image/jpeg'
});
}
//将转换好的blod写成**.jpg图片文件
function saveDataTofilesystem (fileurl,Base64code,dtd) {
var self = this;
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
window.requestFileSystem(window.PERSISTENT,0, function(fs) {
fs.root.getFile(fileurl, {
create : true
}, function(fileEntry) {
fileEntry.createWriter(function(fileWriter) {
var data = convertBase64UrlToBlob(Base64code);
fileWriter.seek(0)
fileWriter.write(data);
dtd.resolve();
//alert('save success'+fileurl);
}, function(err) {
alert("错误码 :" + err.code);
});
}, function(err) {
alert("错误码 :" + err.code);
});
}, function(err) {
alert("错误码 :" + err.code);
});
}
问题:以上代码可顺利执行,成功在sd卡上生产了图片文件,路径为:/巡视/tangfengfan11.jpg
但图片打开为空白?困扰了很多天,求大神指导~~万分感谢 |
|