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。