记录uniapp在App端操作arraybuffer格式的图片流显示不了 图片的问题

文章讲述了如何在项目中处理接口返回的图形验证码流,原先是使用Blob对象和URL.createObjectURL在H5环境中正常显示,但在APP端遇到问题。解决方案是将ArrayBuffer转换为Base64字符串以便跨环境展示。

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

因为项目登录需要图形验证,接口直接返回图片流,根据以往做法直接装blod类型是可以显示的

// res arraybuffer 对象集
const blob=new Blob([res],{ type: 'image/jpeg' });
// 创建一个URL对象
const imgUrl=URL.createObjectURL(blob);

但是这种做法在h5正常像是,在app端却无法显示,需要转成base64

 // 将arraybuffer转换为base64字符串
export function arrayBufferToBase64(arrayBuffer) {
  let base64 = "";
  const bytes = new Uint8Array(arrayBuffer);
  const len = bytes.byteLength;
  for (let i = 0; i < len; i++) {
    base64 += String.fromCharCode(bytes[i]);
  }
  return `data:image/png;base64,${btoa(base64)}`;
}

仅做问题记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值