M522828
M522828
  • 发布:2015-07-25 08:37
  • 更新:2018-06-26 10:45
  • 阅读:7444

android如何把base64数据保存为图片

分类:HTML5+

如题

2015-07-25 08:37 负责人:无 分享
已邀请:
M522828

M522828 (作者)

@DCloud_Android_mabo @DCloud_App_Array @DCloud_Android_磊子

M522828

M522828 (作者)

var path = plus.io.convertLocalFileSystemURL('_doc/'+storeDir);
var Base64 = plus.android.importClass("android.util.Base64");
var File = plus.android.importClass("java.io.File");
var FileOutputStream = plus.android.importClass("java.io.FileOutputStream");

                var dir = new File(path);  
                if (!dir.exists()) {  
                    dir.mkdirs();  
                }  

                try{  
                    var out = new FileOutputStream(path+"test.png");  
                    var bytes = Base64.decode(data,Base64.DEFAULT);  
                    out.write(bytes);  
                    out.close();  
                }catch(e){  
                    console.log(e.message);  
                }  

我试了试这样写,但是在写入文件时大小为0
分析了下可能是out.write在js里不能写入byte数组(在java中是可以直接写入byte数组)
于是,我改了一下代码,如下
for(var i=0;i<bytes.length;i++){
out.write(bytes[i]);
}
这样能正确写入图片,但是我25kB的文件花了23秒,这不是写入文件的正确姿势啊,求解,急急急

  • Android_磊子

    fos.write(bytes);现网版本还是有点问题,不过此bug已修复,等待下个版本更新。

    2015-07-27 18:57

  • nick01

    回复 Android_磊子:这个问题解决了吗,我现在需要把base64写音频文件,fos.write(bytes) 还是0呀

    2016-03-27 11:16

DCloud_App_Array

DCloud_App_Array

3***@qq.com

3***@qq.com

fs.root.getFile(filePath,{create:true},function(fileEntry){

                                fileEntry.createWriter(function(writer){                                  

                                var out = new FileOutputStream(filePath);  
                                var bytes =  base64.decode(byteString,base64.DEFAULT);   
                                out.write(bytes);  
                                out.close();  
                                .....  
                   });  

});
试了下,out.write(bytes);写到fileEntry.createWriter(function(writer){// 里面可以,不完善,暂时只能这样处理。。

x***@126.com

x***@126.com - 白白的小白

这个问题现在有方法可以解决了吗?求问

x***@126.com

x***@126.com - 白白的小白

把base64数据保存为图片
http://ask.dcloud.net.cn/question/6190

网页中截图保存到本地 获取某个div或者某一块区域(纯js实现)
http://ask.dcloud.net.cn/article/398?item_id=11345

可能是现在比较新的解决方案。我是按第二个网址里的Demo写的,可以实现。
放这里给搜索到的人参考

arjen

arjen - 80

有的可以,但有的手机上loadBase64Data就没反应了,有遇到过吗?

该问题目前已经被锁定, 无法添加新回复