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

JS 下载data:image/png;base64, 图片

在JavaScript中下载base64格式的图片可以通过以下几种方法实现:

1. 直接使用a标签下载‌

适用于PC端浏览器,简单快捷:

const link = document.createElement('a');
link.href = 'data:image/png;base64,iVBORw...'; // 替换为你的base64数据
link.download = 'image.png';
link.click();

2. 转换为Blob对象后下载‌

兼容性更好,尤其适合移动端:

function downloadBase64Image(base64Data, filename) {const byteString = atob(base64Data.split(',')[1]);const mimeType = base64Data.match(/:(.*?);/)[1];const ab = new ArrayBuffer(byteString.length);const ia = new Uint8Array(ab);for (let i = 0; i < byteString.length; i++) {ia[i] = byteString.charCodeAt(i);}const blob = new Blob([ab], { type: mimeType });const url = URL.createObjectURL(blob);const link = document.createElement('a');link.href = url;link.download = filename || 'download.png';link.click();setTimeout(() => URL.revokeObjectURL(url), 100);
}

3. 使用jsPDF库转换为PDF下载‌

若需将图片嵌入PDF:

import jsPDF from 'jspdf';
const pdf = new jsPDF();
pdf.addImage('data:image/png;base64,iVBORw...', 'PNG', 0, 0, 210, 297);
pdf.save('image.pdf');

注意事项‌:

  • 移动端浏览器可能限制直接下载,推荐使用Blob方式6。
  • 文件名可通过download属性自定义45。
  • 大量数据时注意释放Blob URL避免内存泄漏68。
http://www.xdnf.cn/news/347509.html

相关文章:

  • 告别手动输入密码:基于SSHPass的自动化文件传输实践告别手动输入密码:基于SSHPass的自动化文件传输实践
  • Marin说PCB之器件的3D数模匹配失效案例
  • 在微程序控制器中,各概念之间的详细关系
  • IEEE出版|2025年物联网、数据科学与先进计算国际学术会议(IDSAC2025)
  • MyBatis 动态 SQL 完整笔记
  • 深泽多层电路在PCB行业中属于什么水平
  • laravel 使用异步队列,context带的上下文造成反序列化出问题
  • sql server限制用户只能访问特定表
  • PWN基础-ROP技术-ret2syscall-64位程序栈溢出利用
  • el-table合并单元
  • 【基础知识】李雅普诺夫方程与李雅普诺夫函数
  • 985高校查重率“隐性阈值”:低于5%可能被重点审查!
  • 从艾米・阿尔文看 CTO 的多面特质与成长路径
  • 英皇娱乐X乐华娱乐携手造星!“英皇乐华青少年艺人培训班”正式启动!
  • 深度学习-159-综述之混合专家模型和推理模型以及工作流和智能体的概念
  • Elastic:如何构建由 AI 驱动的数字客户体验策略
  • 计算机网络-LDP工作过程详解
  • 代码随想录算法训练营第60期第三十天打卡
  • C++之set和map的运用
  • MySQL 数据库
  • AI人工智能在交通物流领域的应用
  • web 自动化之 Selenium 元素定位和浏览器操作
  • 探索 C++ 在行业应用与技术融合中的核心价值
  • Baklib构建AI就绪知识管理体系
  • 湖北理元理律师事务所的企业债务重组实践:挽救实体经济的法律处方
  • B站pwn教程笔记-8
  • 验证码(笔记)
  • IndoorLink 新一代旗舰电子讲解器,四大革新技术开启破冰之旅
  • Spring AI 入门(持续更新)
  • RDD实现单词计数