uniapp app保存base64位图片到手机

463 阅读1分钟
// utils/index.js

export const saveBase64Img = (base64, url) => {
  const bitmap = new plus.nativeObj.Bitmap("test");
  return new Promise((resolve, reject) => {
    // 从本地加载Bitmap图片
    bitmap.loadBase64Data(
      base64,
      () => {
        bitmap.save(
          url,
          {
            overwrite: true, // 是否覆盖
            // quality: quality  // 图片清晰度
          },
          (i) => {
            uni.saveImageToPhotosAlbum({
              filePath: url,
              success: () => {
                resolve({
                  code: 0,
                  msg: "保存成功",
                  filePath: url,
                });
              },
              fail: (err) => {
                console.log(err);
              },
            });
          },
          (e) => {
            reject("保存图片失败:" + JSON.stringify(e));
          }
        );
      },
      (e) => {
        reject("加载图片失败:" + JSON.stringify(e));
      }
    );
  });
};
// .vue文件

<script>
import { saveBase64Img } from "@/utils";
methods: {
  onSave() {
    saveBase64Img(base64, `/${'文件名'}.png`).then((res) => {
        this.$u.toast("图片保存成功");
    });
  }
}
</script>

注意:/${'文件名'}.png 一定要加斜杠 '/',不然导出不成功