瓦特
瓦特
  • 发布:2016-07-26 15:03
  • 更新:2019-04-29 01:17
  • 阅读:14703

上传图片需要base64编码,Android和IOS完全兼容,也是弄了好久。

分类:Native.js
 之前用H5的canvas来获取,但是只有Android可用,IOS不行,后来说用文件读取的形式,发现很慢,也麻烦,最后用bitmap,封装好的,直接用,两个平台都兼容。  

----分享一下^:^

function GetBase64Code(path) //path绝对路径  
{  
        var bitmap = new plus.nativeObj.Bitmap("test"); //test标识谁便取  
        // 从本地加载Bitmap图片  
        bitmap.load(path,function(){  
            var base4=bitmap.toBase64Data();  
            var datastr=base4.split(',',3)  
            if(datastr.length>1)  
            {  
               pics.push(datastr[1]);  
            }else  
            {  
               pics.push(datastr[0]);  
            }  
            console.log('加载图片:'+base4);  
        },function(e){  
            console.log('加载图片失败:'+JSON.stringify(e));  
        });  
}
7 关注 分享
夏秋 DCloud_IOS_XTY 兔子x 撸三发 1***@qq.com 9***@qq.com 8***@qq.com

要回复文章请先登录注册

2***@qq.com

2***@qq.com

bitmap.toBase64Data() 命令有问题。安卓里取出来base64数据不完整
2019-04-29 01:17
7***@qq.com

7***@qq.com

仅适合小图片。而且是确定性的,对于客户不确定图片不合适
2018-08-31 17:11
瓦特

瓦特 (作者)

回复 1***@qq.com :
是的,就看个人需求,图片太大,转换成字符串肯定会比较大,这个适用一般的小图片
2018-01-29 11:39
1***@qq.com

1***@qq.com

感谢作者,使用虽然可以转换base64,但是占据非常大的内存,使用完全卡死了
2017-12-22 14:33
所谓

所谓

楼主,ios上获取的base64字符正常,但是安卓上获取的不正常。安卓获取的base64字符会少很多,导致图片不能正确解析出来。小米2s 安卓5.0.2
2017-08-17 09:41
7***@qq.com

7***@qq.com

var cmr = plus.camera.getCamera();
cmr.captureImage( ( p )=> {
plus.io.resolveLocalFileSystemURL( p, ( entry ) =>{
this.GetBase64Code(entry.toLocalURL());
}, ( e )=> {
alert( "读取拍照文件错误:"+e.message );
} );
}, ( e )=> {
alert( "失败:"+e.message );
}, {filename:"_doc/camera/",index:1} );

调用方法

显示图片方法
GetBase64Code(path) //path绝对路径
{
var bitmap = new plus.nativeObj.Bitmap("test"); //test标识谁便取
alert(bitmap);
// 从本地加载Bitmap图片
bitmap.load(path,()=>{
var base4=bitmap.toBase64Data();
var datastr=base4.split(',',3)
var pics = [];
if(datastr.length>1)
{
pics.push(datastr[1]);
}else
{
pics.push(datastr[0]);
}
// data:image/png;base64,
alert('加载图片:'+pics[0].substring(0,100));
var src = "data:image/png;base64,"+ pics[0];
//src <img src=src>
},(e)=>{
alert('加载图片失败:'+JSON.stringify(e));
});
2017-03-28 16:51
1***@qq.com

1***@qq.com

mark
2017-03-13 22:18
Float

Float

回复 瓦特 :
好的 多谢
2016-12-02 16:29
瓦特

瓦特 (作者)

回复 Float :
你可以试试,转换后的字符串最前面有个逗号的前面部分不需要,后面部分直接放到src里面就可以看到图片了!
2016-12-02 14:21
Float

Float

回复 瓦特 :
你指的前缀是什么?麻烦给说一下
2016-11-22 13:33