Taro 本地图片上传转Base64

2024-05-06 07:18
文章标签 图片 本地 上传 base64 taro

本文主要是介绍Taro 本地图片上传转Base64,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

描述

  • 使用Taro将本地图片转成base64格式

尝试一 (真机提示有误)

  1. 使用Taro.chooseImage获取图片路径
  2. 然后使用下面的方法转成base64,但发现真机调试时会提示“接口请求失败”
  3. 模拟器获取的图片path是"http://xxx",真机获取的图片path是"wxfile://xxx"
/** 本地图片转Base64*/
async function imgToBase64({ path }) {try {const result = await Taro.request({url: path,responseType: "arraybuffer"});if (result && result.statusCode !== 200) {Taro.getLogManager().warn("图片获取失败", result);throw new Error("图片获取失败。");}let base64 = Taro.arrayBufferToBase64(result.data);base64 = "data:image/jpeg;base64," + base64;return base64;} catch (error) {console.warn("=> utilssearch.ts error imgToBase64", error);throw error;}
}

尝试二(可行)

  • 使用Taro的文件管理器https://taro-docs.jd.com/taro/docs/apis/files/FileSystemManager
  • 将读取到的图片文件进行base64转换:
/*** 本地图片转Base64* @param param.path 文件路径* @returns Base64图片字符串*/
function imgToBase64({ path }) {let res = "";try {const base64 = Taro.getFileSystemManager().readFileSync(path, "base64");if (base64) {res = "data:image/jpeg;base64," + base64;}} catch (error) {console.warn("=> utilssearch.ts error imgToBase64", error);throw error;} finally {return res;}
}

2021-06-08 更新

  • 升级了方法,Taro不仅可以转本地图片,还能转网络图片为Base64 🎉
/*** 图片转Base64* @returns Base64图片字符串*/
interface ImgToBase64Params {/** 本地图片路径或网络图片路径 */url: string;
}
async function imgToBase64(params: ImgToBase64Params) {let res = "";// 图片链接必填if (!params?.url) {return res;}try {// 获取图片信息(本地图片链接)const successCallback = await Taro.getImageInfo({src: params.url});const { path, type } = successCallback;if (!path) {return res;}// 本地图片转Base64const base64 = Taro.getFileSystemManager().readFileSync(path, "base64");res = `data:image/${type};base64,${base64}`;} catch (error) {console.warn("=> utilssearch.ts error imgToBase64", error);throw error;} finally {return res;}
}/*** 获取去前缀的base64图片* @param base64Img 图片*/
function imgBase64WithoutHeader(base64Img: string) {let res: string = "";if (!base64Img) {return res;}res = base64Img.toString().replace(/^data:image\/\w+;base64,/, "");return res;
}

 

 

这篇关于Taro 本地图片上传转Base64的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/963739

相关文章

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意

c/c++的opencv实现图片膨胀

《c/c++的opencv实现图片膨胀》图像膨胀是形态学操作,通过结构元素扩张亮区填充孔洞、连接断开部分、加粗物体,OpenCV的cv::dilate函数实现该操作,本文就来介绍一下opencv图片... 目录什么是图像膨胀?结构元素 (KerChina编程nel)OpenCV 中的 cv::dilate() 函

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

GitLab文件的上传与下载方式

《GitLab文件的上传与下载方式》:本文主要介绍GitLab文件的上传与下载方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录GitLab 项目拉取到本地GitLab 项目上传方法方法 1:本地项目未初始化Git方法 2:本地项目已初始化GitGitLab 上

Maven项目打包时添加本地Jar包的操作步骤

《Maven项目打包时添加本地Jar包的操作步骤》在Maven项目开发中,我们经常会遇到需要引入本地Jar包的场景,比如使用未发布到中央仓库的第三方库或者处理版本冲突的依赖项,本文将详细介绍如何通过M... 目录一、适用场景说明​二、核心操作命令​1. 命令格式解析​2. 实战案例演示​三、项目配置步骤​1

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

Nginx 413修改上传文件大小限制的方法详解

《Nginx413修改上传文件大小限制的方法详解》在使用Nginx作为Web服务器时,有时会遇到客户端尝试上传大文件时返回​​413RequestEntityTooLarge​​... 目录1. 理解 ​​413 Request Entity Too Large​​ 错误2. 修改 Nginx 配置2.1

Java应用如何防止恶意文件上传

《Java应用如何防止恶意文件上传》恶意文件上传可能导致服务器被入侵,数据泄露甚至服务瘫痪,因此我们必须采取全面且有效的防范措施来保护Java应用的安全,下面我们就来看看具体的实现方法吧... 目录恶意文件上传的潜在风险常见的恶意文件上传手段防范恶意文件上传的关键策略严格验证文件类型检查文件内容控制文件存储

python如何下载网络文件到本地指定文件夹

《python如何下载网络文件到本地指定文件夹》这篇文章主要为大家详细介绍了python如何实现下载网络文件到本地指定文件夹,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下...  在python中下载文件到本地指定文件夹可以通过以下步骤实现,使用requests库处理HTTP请求,并结合o

Java实现图片淡入淡出效果

《Java实现图片淡入淡出效果》在现代图形用户界面和游戏开发中,**图片淡入淡出(FadeIn/Out)**是一种常见且实用的视觉过渡效果,它可以用于启动画面、场景切换、轮播图、提示框弹出等场景,通过... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细