拍照后照片转base64位

拍照后的照片获取本地存储地址后进行压缩,压缩成一定大小以及像素画质,然后在转为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() {
});
}
);
}
\n
5 分享 关注
cgvr@163.com 384534303@qq.com 付憷 木杉丶 1374845793@qq.com
撸三发

撸三发 回复 1451478031@qq.com

你把转出来,像上面的格式在谷歌浏览器打开,看看是否一样呗
0 赞 3 天前
1451478031@qq.com

1451478031@qq.com 回复 蔡邵鑫

您好,请问苹果是怎么解决的,我每次转出来的base64都是一样的?
0 赞 4 天前
1451478031@qq.com

1451478031@qq.com

ios中怎么转出来的是一样的base64,这个怎么解决
0 赞 4 天前
1457721806@qq.com

1457721806@qq.com 回复 撸三发

好的 谢谢
0 赞 2018-10-16 09:49
撸三发

撸三发 回复 1457721806@qq.com

可以不压缩,不过会很大
0 赞 2018-10-15 13:45
1457721806@qq.com

1457721806@qq.com

要转base64必须压缩吗,有没有直接file格式转base64的
0 赞 2018-10-15 11:31
撸三发

撸三发 回复 付憷

不用客气,点个赞呗
1 赞 2018-07-18 14:28
付憷

付憷 回复 撸三发

折腾了一下,已经可以用了,谢谢啦
0 赞 2018-07-18 14:24
撸三发

撸三发 回复 付憷

err是可以打印出来的,你打印看看是提示什么错误,假如打印是个object的话就err.message来打印
0 赞 2018-07-18 13:47
付憷

付憷 回复 撸三发

提示未知错误,不知道是什么原因呢
0 赞 2018-07-17 14:45
撸三发

撸三发 回复 付憷

能说具体点不?
0 赞 2018-07-17 14:26
付憷

付憷

位置错误,啥问题啊
0 赞 2018-07-16 17:52
撸三发

撸三发 回复 Rudy001

这是压缩后的
0 赞 2018-04-09 08:51
Rudy001

Rudy001 回复 蔡邵鑫

这样处理得到的base64 就是未压缩的了吧
0 赞 2018-03-20 16:00
撸三发

撸三发 回复 蔡邵鑫

可以有,安卓可能需要用resolveLocalFileSystemURL来获取地址,ios可以直接获取地址
0 赞 2017-12-07 10:35
蔡邵鑫

蔡邵鑫 回复 撸三发

可以拿压缩的路径来获取到文件
1 赞 2017-12-06 18:00
撸三发

撸三发 回复 蔡邵鑫

可以,值得参考
0 赞 2017-12-06 17:39
撸三发

撸三发 回复 蔡邵鑫

这样少了压缩的效果。图片是属于原图
0 赞 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);
}
1 赞 2017-12-05 17:03
撸三发

撸三发 回复 蔡邵鑫

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

蔡邵鑫

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

撸三发 回复 蔡邵鑫

我这边安卓可以转
0 赞 2017-11-24 16:01
撸三发

撸三发 回复 蔡邵鑫

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

蔡邵鑫

你打印出来的base64用在线转图转化成功了吗?我这边成功不了
0 赞 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);
0 赞 2017-09-20 16:14
撸三发

撸三发

@DCloud_App_Array
0 赞 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() {
});
}
);
}
0 赞 2017-09-20 16:10

要回复文章请先登录注册