uniapp(微信小程序) base64图片保存

1.在页面上写上触发方法

<image :src="src" mode="" @click="saveImg(qrcode)"></image>

2.在JS上获取微信小程序相机功能

    saveImg(qrcode) {
      let that = this;
      uni.getSetting({
        success: (res) => {
          console.log(res);
          if (!res.authSetting["scope.writePhotosAlbum"]) {
            uni.showModal({
              title: "警告",
              content: "检测到您没您未授权相册权限,点击确定获取授权。",
              success: function (res) {
                if (res.confirm) {
                  uni.authorize({
                    scope: "scope.writePhotosAlbum",
                    success() {
                      // 用户已经同意
                      that.saveImgToAlbum(qrcode);
                    },
                    fail(err) {
                      console.log("用户拒绝授权相册");
                    },
                  });
                }
              },
            });
          } else {
            that.saveImgToAlbum(qrcode);
          }
        },
        fail: () => {
          console.log("点击了拒绝");
        },
      });
    },

注意:此时qrcode的格式是base64    需要通过saveImgToAlbum的方法去转换一下

3.通过saveImgToAlbum方法转换并保存下来

    // 保存二维码图片到相册
    saveImgToAlbum(qrcode) {
      let base64 = qrcode.replace(/^data:image\/\w+;base64,/, ""); //去掉data:image/png;base64,
      var fileManager = uni.getFileSystemManager();
      let that=this
      fileManager.writeFile({
        filePath: wx.env.USER_DATA_PATH + "/img.jpg", // 指定图片的临时路径
        data: base64, // 要写入的文本或二进制数据
        encoding: "base64", // 指定写入文件的字符编码
        success: (res) => {
          console.log("写入文件成功", res);
          console.log(wx.env.USER_DATA_PATH + "/img.jpg");
          uni.saveImageToPhotosAlbum({
            // 保存图片到相册
            // filePath: wx.env.USER_DATA_PATH + "/img.jpg",
            filePath: wx.env.USER_DATA_PATH + '/img.jpg',
            success: function (res) {
              uni.showToast({
                title: "保存成功",
              });
            },
            fail: function (err) {
              console.log("保存失败", err);
            },
          });
        },
        file: (err) => {
          console.log("写入文件失败", err);
        },
      });
    },

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值