当前位置: 首页 > article >正文

uniapp图片数据流���� JFIF ��C 转化base64

1,后端返回的是图片数据流,格式如下

���� JFIF ��C  如何把这样的文件流转化为base64,

 btoa 是浏览器提供的函数,但在 小程序 环境中(如微信小程序、支付宝小程序),btoa 不可用。你需要手动编写 Base64 编码逻辑或者使用第三方库

2,uniapp调用接口

export  async function getImgFn(objectKey,md5){
		const res =await uni.request({
	            url:ip地址,
				header: {
					  'VerificationToken': 12,   //请求头根据你的要求传,我这里没有要求
				},
	            method: "GET",
				responseType: 'arraybuffer', 
            });
			let base64img='data:image/jpeg;base64,' + base64Encode(res.data)  //手动写一个base64Encode方法
		 return base64img;
 }

3,手动写一个base64Encode数据流转base64方法

function base64Encode(buffer) {
			    const base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
			    let binary = '';
			    const bytes = new Uint8Array(buffer);
			    const len = bytes.byteLength;
			
			    for (let i = 0; i < len; i++) {
			        binary += String.fromCharCode(bytes[i]);
			    }
			
			    let base64 = '';
			    let padding = '';
			    let remainder = binary.length % 3;
			
			    if (remainder > 0) {
			        for (let i = 0; i < 3 - remainder; i++) {
			            padding += '=';
			            binary += '\0';
			        }
			    }
			
			    for (let i = 0; i < binary.length; i += 3) {
			        const n = (binary.charCodeAt(i) << 16) |
			                  (binary.charCodeAt(i + 1) << 8) |
			                  binary.charCodeAt(i + 2);
			
			        base64 += base64Chars[(n >> 18) & 63] +
			                  base64Chars[(n >> 12) & 63] +
			                  base64Chars[(n >> 6) & 63] +
			                  base64Chars[n & 63];
			    }
			
			    return base64.substring(0, base64.length - padding.length) + padding;
	}


http://www.kler.cn/a/445105.html

相关文章:

  • 猫头虎分享:读孙凝晖院士《人工智能与智能计算的发展》有感
  • Ubuntu上如何部署Nginx?
  • qt 类中的run线程
  • 04、Vue与Ajax
  • 后摩尔定律时代,什么将推动计算机性能优化的发展?
  • 树莓派3B+驱动开发(8)- i2c控制PCF8591
  • Ubuntu将深度学习环境配置移植到新电脑
  • 分布式锁介绍
  • Spark 运行时对哪些数据会做缓存?
  • 怎样衡量电阻负载的好坏
  • (六)Spring Cloud Alibaba 2023.x:Sentinel 流量控制与熔断限流实现
  • 2024年12月16日Github流行趋势
  • mfc140.dll文件缺失的修复方法分享,全面分析mfc140.dll的几种解决方法
  • 如何使用git新建本地仓库并关联远程仓库的步骤(详细易懂)
  • LoadBalancer负载均衡和Nginx负载均衡区别理解
  • ubuntu解决ssh连接:Permission denied (publickey)
  • 【Linux】AlmaLinux 9.5虚拟机安装过程记录分享
  • ubuntu--用户
  • 【vue】npm install 报错 python2 Error: not found: python2
  • Day27 C++ 动态内存
  • ArcGIS Pro 3.4新功能3:空间统计新特性,基于森林和增强分类与回归,过滤空间自相关
  • CTFHUB 历年真题 afr-1
  • 如何编辑调试gradle,打印日志
  • upload-labs靶场
  • uniapp小程序抽奖怎么做?直接使用【almost-lottery转盘组件】或者【自定义宫格转盘】
  • SL4008B升降压芯片 9-36V降12V/2A 耐压40V 外置MOS管 80W大功率IC