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

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


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);
        },
      });
    },

你可能感兴趣的:(微信小程序,uni-app,小程序)