可直接在浏览器端生成并下载简易图片。1. 创建Canvas绘制图形或文字;2. 用toBlob()转为Blob;3. 用createObjectURL()生成URL并通过a标签下载;4. 下载后调用revokeObjectURL()释放内存。
可以利用 Blob 对象配合 Canvas 和 URL.createObjectURL(),在浏览器端直接生成并下载简易图片(如纯色图、带文字的图、简单图表等),全程无需后端参与。
先创建一个 <canvas> 元素,设置宽高,用 2D 上下文绘制所需图形或文字:
ctx.fillStyle 和 ctx.fillRect() 绘制背景色ctx.font、ctx.fillStyle、ctx.fillText() 添加文字调用 canvas.toBlob() 方法,把画布内容导出为 Blob 对象:
"image/png" 或 "image/jpeg"
0.9
用 URL.createObjectURL(blob) 创建可访问的本地 URL,再通过动态创建 a 标签实现下载:
a.href 为该 URL,a.download 指定文件名(如 "my-image.png")a.click() 触发下载URL.revokeObjectURL(url) 释放内存以下代码点击按钮即可生成一张 300×200 的蓝色背景、居中显示“Hello”的 PNG 图片并自动下载:
function generateImage() { const canvas = document.createElement('canvas'); canvas.width = 300; canvas.height = 200; const ctx = canvas.getContext('2d'); ctx.fillStyle = '#4a90e2'; ctx.fillRect(0, 0, canvas.width, canvas.height); ctx.font = '24px Arial'; ctx.fillStyle = 'white'; ctx.textAlign = 'center'; ctx.textBaseline = 'middle'; ctx.fillText('Hello', canvas.width / 2, canvas.height / 2); canvas.toBlob(blob => { const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = 'hello.png'; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(url); }, 'image/png');}
谈一谈企业为什么需要 `RAG` 知识库?
Claude Code配置智谱GLM-4.7 模型完整操作文档实用指南
第4周行业复盘总结:AI + Web3 四大落地场景的关键教训与可复用架构模式
非结构化数据用什么数据库好?Redis 和 MongoDB 如何选?阿里云瑶池数据库 Tair 与 Lindorm 方案
小米路由器4c(r4cm)是5g还是2.4g(小米路由器4C(R4CM)支持5G和2.4G吗)
毕业老学长给我留的最后一句话是:“AI 写的,别挂我名。” 我直接 神(Trae + Seed Evolving) 来!助我!