调用h5+ 相机方法,并将照片转为base64格式

该代码段展示了在移动设备上如何调用相机获取照片,然后对图片进行压缩以优化大小,接着将压缩后的图片转换为Base64格式用于进一步处理或展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 调用相机
    chooseImage(o) {
      try {
        const camera = plus.camera.getCamera();
        camera.captureImage(function (path) {
          // path  为获取拍照照片的url
          plus.io.resolveLocalFileSystemURL(path, async (entry) => {
            // entry 为获取的文件对象
            // 图片太大,进行压缩
            const res = await _this.compressImage(
              entry.toLocalURL(),
              entry.name
            );
            // 将压缩后的转化为base64格式
            const url = await _this.showPics(res.target, entry.name);
          
          });
        });
      } catch (err) {
        alert("请使用手机操作");
        console.log("请使用手机操作");
      }
    },
        // 压缩
    compressImage(url, filename) {
      return new Promise((resolve, reject) => {
        var name = "_doc/upload/" + filename;
        plus.zip.compressImage(
          {
            src: url, //src: (String 类型 )压缩转换原始图片的路径
            dst: name, //压缩转换目标图片的路径
            quality: 90, //quality: (Number 类型 )压缩图片的质量.取值范围为1-100
            overwrite: true, //overwrite: (Boolean 类型 )覆盖生成新文件
            width: "250",
            height: "320",
          },
          function (zip) {
            //页面显示图片
            // showPics(zip.target, name);
            resolve(zip);
          },
          function (error) {
            reject(error);
            // plus.nativeUI.toast("压缩图片失败,请稍候再试");
          }
        );
      });
    },
    // 转base64
    showPics(url, name) {
      return new Promise((resolve, reject) => {
        //根据路径读取到文件
        plus.io.resolveLocalFileSystemURL(url, function (entry) {
          entry.file(function (file) {
            var fileReader = new plus.io.FileReader();
            fileReader.readAsDataURL(file);
            fileReader.onloadend = function (e) {
              var picUrl = e.target.result.toString();
              resolve(picUrl);
            };
          });
        });
      });
    },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值