撸三发
撸三发
  • 发布:2017-09-20 16:09
  • 更新:2020-06-12 10:55
  • 阅读:9343

拍照后照片转base64位

分类:Native.js

拍照后的照片获取本地存储地址后进行压缩,压缩成一定大小以及像素画质,然后在转为base64位图片,可以用于部分接口需要base64图片上传,网上有部分源码只转地址没转base64,现在来分享下干货了。

                   function getImage() {  
                var c = plus.camera.getCamera();  
                c.captureImage(function(e) {  
                    plus.io.resolveLocalFileSystemURL(e, function(entry) {  
                        var src = entry.toLocalURL();  
                        resizeImage(src)//进行压缩  
                    }, function(e) {  

                    });  
                }, function(s) {  

                }, {  
                    filename: "_doc/head.jpg"  
                })  
            }  
             //再对图片进行压缩为270*270,再上传到服务器  
              function resizeImage(src) {  
                plus.zip.compressImage(  
                  {  
                    src: src,  
                    dst: "_doc/a.jpg",  
                    overwrite: true,  
                    width: '270px',  
                    height:'270px',  
                    format: 'jpg',  
                    quality: 100  
                  },  
                  function(e) {  
                    var reader = new plus.io.FileReader();  
                        reader.onloadend = function (e) {  
                            var speech = e.target.result;//base64图片                           
                        };  
                    reader.readAsDataURL(e.target);  
                  },  
                  function(err) {  
                    plus.nativeUI.alert('未知错误!',function() {  
                    });  
                  }  
                );  
              }
7 关注 分享
c***@163.com 3***@qq.com 付楚 木杉丶 最光阴 1***@163.com 1***@qq.com

要回复文章请先登录注册

撸三发

撸三发 (作者)

回复 蔡邵鑫 :
这样少了压缩的效果。图片是属于原图
2017-12-06 17:31
蔡邵鑫

蔡邵鑫

回复 撸三发 :
我解决了,ios的路径在转换下

if (mui.os.ios){
plus.io.resolveLocalFileSystemURL(src, function(entry){
entry.file(function(file){
reader.readAsDataURL(file);
},function(e){
callback.call(null);
mui.toast("读写出现异常: " + e.message );
})
})
}
else {
reader.readAsDataURL(e.target);
}
2017-12-05 17:03
撸三发

撸三发 (作者)

回复 蔡邵鑫 :
ios会出现转码失败
2017-12-05 16:08
蔡邵鑫

蔡邵鑫

苹果的在调用reader.readAsDataURL(e.target);时会出现"error":{"code":1,"message":"文件没有发现"},进行压缩时没有问题,我用压缩前的路径,也还是报文件没有发现的错误
2017-12-01 15:39
撸三发

撸三发 (作者)

回复 蔡邵鑫 :
我这边安卓可以转
2017-11-24 16:01
撸三发

撸三发 (作者)

回复 蔡邵鑫 :
是用苹果还是安卓打印的?
2017-11-24 15:56
蔡邵鑫

蔡邵鑫

你打印出来的base64用在线转图转化成功了吗?我这边成功不了
2017-11-22 13:10
撸三发

撸三发 (作者)

下面也可以在语音转base64位的方法上使用,file为本地地址位置:
var reader = new plus.io.FileReader();
reader.onloadend = function (e) {
var speech = e.target.result;//base64图片
};
reader.readAsDataURL(file);
2017-09-20 16:14
撸三发

撸三发 (作者)

@DCloud_App_Array
2017-09-20 16:10
撸三发

撸三发 (作者)

function getImage() {
var c = plus.camera.getCamera();
c.captureImage(function(e) {
plus.io.resolveLocalFileSystemURL(e, function(entry) {
var src = entry.toLocalURL();
resizeImage(src)//进行压缩
}, function(e) {

});
}, function(s) {

}, {
filename: "_doc/head.jpg"
})
}
//再对图片进行压缩为270*270,再上传到服务器
function resizeImage(src) {
plus.zip.compressImage(
{
src: src,
dst: "_doc/a.jpg",
overwrite: true,
width: '270px',
height:'270px',
format: 'jpg',
quality: 100
},
function(e) {
var reader = new plus.io.FileReader();
reader.onloadend = function (e) {
var speech = e.target.result;//base64图片
};
reader.readAsDataURL(e.target);
},
function(err) {
plus.nativeUI.alert('未知错误!',function() {
});
}
);
}
2017-09-20 16:10