前端实现base64编码图片的导出

调用handleDownload方法,传入图片的base64编码,将图片进行导出保存:

// base64 转换blob对象
const base64ToBlob = (base64: string) => {
  // 将Base64编码的字符串按';base64,''拆分,得到内容类型和二进制数据两部分
  const parts = base64.split(';base64,');
  const contentType = parts[0].split(':')[1];
  // 将二进制数据转换为UTF-8编码的字符串
  const raw = window.atob(parts[1]);
  const rawLength = raw.length;
  // 创建一个Uint8Array对象,将字符串中的每个字符码存储到这个数组中
  const uInt8Array = new Uint8Array(rawLength);

  for (let i = 0; i < rawLength; ++i) {
    uInt8Array[i] = raw.charCodeAt(i);
  }
// 使用Blob对象的构造函数创建一个新的Blob对象,将Uint8Array作为参数传递,并设置内容类型。
  return new Blob([uInt8Array], { type: contentType });
}
// 保存二维码
const handleDownload = (base64:string) => {
  // 将图片从base64转换为blob对象
  const blob = base64ToBlob(base64);
  // 创建一个URL对象,用于存储blob对象
  const url = URL.createObjectURL(blob);
  // 创建一个a标签,用于下载文件
  const link = document.createElement('a');
  // 设置a标签的href属性,为url对象
  link.href = url;
  // 设置a标签的download属性,为要下载的文件名
  link.download = 'downloaded.png'; // 指定下载文件的名称
  // 将a标签添加到body中
  document.body.appendChild(link);
  // 点击a标签,触发下载
  link.click();
  // 销毁URL对象
  URL.revokeObjectURL(url);
  // 从body中移除a标签
  document.body.removeChild(link);
}

MDN上关于Data URL的介绍
MDN上关于base64的介绍

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Kafka---总结篇

kafka架构 主要概念 broker: 存储消息的机器 控制器controller &#xff08;1&#xff09;使用zookeeper&#xff0c; 除了提供一般的broker功能之外&#xff0c;还负责选举分区首领。通过在zookeepr中创建一个名为 /controller的临时节点称为 controller。每个选出的contro…

百科词条创建要多久成功?

在互联网信息爆炸的时代&#xff0c;百科词条作为权威的知识分享平台&#xff0c;其重要性不言而喻。那么&#xff0c;创建一个百科词条需要多久才能成功呢&#xff1f;创建百科词条是一个相当需要有耐心的工作&#xff0c;接下来伯乐网络传媒就来给大家讲一讲。 一、影响百科词…

node-sass报错如何解决

npm install 安装的时候 报node-sass错误 这个一看就是node版本兼容性导致的问题 node-sass与node版本不匹配 下面是常见的node版本和对应的node-sass版本 解决办法 1.单独安装node-sass npm install node-sass9.0.0 还是报上面的错误&#xff01;&#xff01;&#xff01;&a…

论文笔记:Leveraging Language Foundation Models for Human Mobility Forecasting

SIGSPATIAL 2022 1intro 语言模型POI客流量预测 2 方法 3 实验

Midjourney如何利用quality控制图片质量,让细节更丰富

hello 小伙伴们&#xff0c;我是你们的老朋友——树下&#xff0c;今天分享Midjourney提示词常用参数——quality&#xff0c;通过更给quality的值可以生成质量更好的图片&#xff0c;让细节更丰富&#xff0c;那么这个参数是怎么用的呢&#xff1f;话不多说&#xff0c;直接开…

2014NOIP普及组真题 3. 螺旋矩阵

线上OJ&#xff1a; 一本通&#xff1a;http://ybt.ssoier.cn:8088/problem_show.php?pid1967 背景知识&#xff1a; 螺旋矩阵可以采用模拟的方式生成。就是顺时针四个方向 第1步、是第 1 行&#xff0c;方向为从左到右&#xff0c;数值1。当向右遇到 边界n 或者 格子已填过数…

基于卷积神经网络的手写数字识别

⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计3077字&#xff0c;阅读大概需要3分钟 &#x1f308;更多学习内容&#xff0c; 欢迎&#x1f44f;关注&#x1f440;【文末】我的个人微信公众号&#xf…

海外短剧:跨文化的新浪潮与看剧系统的搭建,海外短剧系统搭建开发定制

在全球化的大潮下&#xff0c;海外短剧作为一种新兴的文化交流方式&#xff0c;正逐渐受到越来越多人的喜爱。这种融合了各地文化元素、叙事手法新颖独特的短剧形式&#xff0c;不仅丰富了观众的视觉体验&#xff0c;也为影视媒体和想拓展海外市场的企业带来了无限商机。 一、…

MMSeg分析Flops和Params

Flops计算量&#xff0c;params参数量 在文件中 tools/analysis_tools/get_flops.py利用以下命令实现 python tools/analysis_tools/get_flops.py configs/xxx/xxx-Net.py后面可跟参数shape控制输入图片尺寸&#xff0c;例如 python tools/analysis_tools/get_flops.py conf…

Python Django框架的内容管理系统库之wagtail使用详解

概要 Python Wagtail库是一个基于Django框架的内容管理系统(CMS),它提供了丰富的功能和工具,帮助开发者快速构建灵活、强大的网站和应用。本文将介绍如何安装和使用Python Wagtail库,以及它的特性、基本功能、高级功能、实际应用场景和总结部分。 安装 首先,需要安装Py…

uni-app HBuilderX通过easycom省略import自动导入自定义组件

快速尝试 自HBuilderX 2.5.5起支持easycom组件模式。更新HBuilderX即可尝试。 easycom默认已启用&#xff0c;并对项目下的components和uni_modules目录开启自动扫描&#xff0c;对符合下面路径和命名规则的组件自动导入。 components/组件名/组件名.vue uni_modules/组件名/…

Go并发安全,锁和原子操作

一. 并发安全 有时候在Go代码中可能存在多个goroutine同时操作一个资源(临界区)&#xff0c;这种情况会发生竞态问题(数据竞态)。 1.1 互斥锁 互斥锁是一种常见的控制共享资源访问的方法&#xff0c;它能够保证同时只有一个goroutine可以访问共享资源。Go语言中使用sync包的Mut…

【日志】CSDN-AI助手升级日志

CSDN-AI助手升级日志 2023/04/05上线 支持点赞、收藏回访 关注回访&#xff08;对方至少有一条博客的记录&#xff09; 评论回访 私信检测到群发消息自动三连 OR 通过私信指令三连触发 bug优化 优化检测模式&#xff0c;防止出现多触发情况 为了防止操作额度不够&#xff0c…

Spring日志

Spring日志的作用: 1.定位和发现问题 2.系统监控 3.数据采集 4.日志审计 打印日志步骤: 1.定义日志对象2.打印日志 RestController public class LoggerController {private static Logger logger LoggerFactory.getLogger(LoggerController.class);PostConstructpublic v…

Dos慢速攻击

这里写自定义目录标题 Dos慢速攻击 Dos慢速攻击 测试结果为“Exit status&#xff1a; No open connections left"&#xff0c;代表无此漏洞。 如果测试结束后connected数量较多&#xff0c;closed数量很少或0&#xff0c;说明之前建立的慢速攻击测试连接没有关闭&#…

最佳三款员工电脑行为监控软件评选

企业对员工生产力和数据安全的关注不断增加&#xff0c;员工电脑行为监控软件成为了许多企业不可或缺的工具。 这些软件不仅可以帮助企业管理者实时监测员工的电脑使用情况&#xff0c;还可以防止数据泄露和滥用公司资源。 然而&#xff0c;市面上有数不胜数的员工电脑行为监控…

【前端缓存】localStorage是同步还是异步的?为什么?

写在开头 点赞 收藏 学会 首先明确一点&#xff0c;localStorage是同步的 一、首先为什么会有这样的问题 localStorage 是 Web Storage API 的一部分&#xff0c;它提供了一种存储键值对的机制。localStorage 的数据是持久存储在用户的硬盘上的&#xff0c;而不是内存。这意…

海外盲盒APP开发:探索海外盲盒市场的商机

随着娱乐消费的流行&#xff0c;盲盒在我国可以说是非常火热&#xff0c;消费群体和市场规模逐年增加。在盲盒热潮下&#xff0c;不少潮玩企业也纷纷加入到了盲盒赛道中&#xff0c;市场竞争非常激烈&#xff01; 此外&#xff0c;我国盲盒出海也成为了一个大趋势。盲盒不仅在…

如何用 Llama 3 免费本地 AI 分析数据和可视化?

帮助你消除调用大模型 API 带来的数据安全烦恼。 模型 今天我们来探讨一个有趣的话题 —— 如何使用 Llama 3 免费地进行数据分析和可视化。 Meta 团队在 2024 年 4 月发布了两款 Llama 3 新模型&#xff0c;一款是 8B&#xff0c;即 80 亿参数&#xff1b;另一款则是 70B&…

鸿蒙arkui 也支持热重载了 我不允许你不会

历史背景 因为鸿蒙出的ark ui 很多人说很像flutter&#xff0c;但是能不能做到跟flutter一样支持热重载呢 。答案是可以的 我们喜就教大家如何操作。 构建工程 选择这个空的模版 next finish 点击file 找到setting 找到 Tools Actions on Save 我们把 Perform hor reload 勾上…
最新文章