8***@qq.com
8***@qq.com
  • 发布:2018-06-12 11:47
  • 更新:2019-08-05 18:09
  • 阅读:8183

保存图片到本地相册

分类:HTML5+

缘起:项目上有一个生成二维码展示,并且能够将二维码保存到本地相册的需求
使用方法:plus.nativeObj.Bitmap();

mui.init();  
	mui.plusReady(function(){  
	  plusReady()  
	})  
	var plusReady = function(){  
	  plus.nativeUI.showWaiting();  
          var src = $("#barcode").attr("src")//base64字符串  
         bitmapSavePic(src)  
  };  
  
  function bitmapSavePic(src){  
    var bm = new  plus.nativeObj.Bitmap("barcode")//path: ( String ) 可选 Bitmap对象自动加载图片的地址  
    bm.loadBase64Data( src, bmloadSuccessCB, bmloadErrorCB );//加载base64为数据到bm实例对象  
    console.log(bm)  
    var path ="_doc/project_barcode.jpg";  
    var options = {"overwrite":true,"format":"jpg","quality":50}  
    bm.save( path, options, bmSaveSuccessCB, bmSaveErrorCB );//将图片保存到指定的路径(仅支持本地文件系统)  
    //保存到相册后,回收Bitmap图片内存  
     bm.recycle();  
  }  
  var bmloadSuccessCB = function (e){  
    console.log("加载base64数据成功")  
  }  
  var bmloadErrorCB = function (err){  
    console.log("加载base64数据失败")  
    console.log(err)  
  }  
  var bmSaveSuccessCB = function (e){  
    console.log(e)  
    console.log("保存成功")  
    console.log("保存地址:"+e.target)  
    saveToGallery(e.target)  
  }  
  var bmSaveErrorCB = function (error){  
    plus.nativeUI.toast("保存失败")  
    console.log("code:"+error.code+";msg:"+error.message);  
  }  
  function saveToGallery(path){  
    console.log(path)  
    plus.gallery.save( path, function(e){  
      var successI18n = $("#successI18n").html();  
      plus.nativeUI.toast(successI18n)  
      console.log(JSON.stringify(e));  
    },function(err){  
      var failedI18n = $("#failedI18n").html();  
      plus.nativeUI.toast(err.message+failedI18n)  
      console.log("保存到相册失败:"+JSON.stringify(err));  
    });  
  }

这段代码有反映有兼容问题.这个本人没有测试过,还望各位见谅.能用的就用吧

1 关注 分享
芬达

要回复文章请先登录注册

1***@qq.com

1***@qq.com

你真棒
2019-08-05 18:09
1***@qq.com

1***@qq.com

为啥我的保存完,在手机里是黑色图片呢
2019-07-30 18:03
j***@163.com

j***@163.com

bm.recycle();这个加个延时,执行太快了,把图片清空了,会让程序找不到图片.
2019-05-27 18:01
sssuxin

sssuxin

你好,请问下有遇到在安卓9机型上loadBase64Data不执行的情况么?
2019-03-22 10:38
8***@qq.com

8***@qq.com (作者)

回复 h***@163.com :
我使用的安卓模拟器测试是没有问题的,目前也没有其它机型。感谢指出
2018-11-14 11:14
h***@163.com

h***@163.com

plus.gallery.save

调用在 小米4上报错
{"code":12,"message":"UNKOWN ERROR"}

在小米 MIX2S 上正常

兼容性有问题,使用慎
2018-11-12 12:08
a***@gmail.com

a***@gmail.com

IOS正常啊,安卓里面会报错

保存到相册失败:{"code":12,"message":"UNKOWN ERROR"}
2018-08-16 09:23