图片下载之 svg 转 png

前言

今天在下载某个网站的图片的时候遇到一个很有意思的下载机制,就是他没有发送任何网络请求,也没有什么页面跳转就完成了 png 图片的下载,这让没见识的我非常好奇,于是决定一探究竟,看看他是怎么实现的。

实现方式

这里通过我本地已经复现的 demo 来演示。 页面很简单,只有一张 svg 图片和一个下载 png 的按钮: 同时也可以很清楚的看到页面并没有任何关于 png 图片的内容,那么我们怎么实现下载呢? 上文我们提到这个下载并没有使用网络请求,那我们能依靠的就只有这个 svg 了,也就是说我们要实现的其实是把 svg 转成 png 然后下载到本地。 坦白说我前端水平一般,只会增删改查,所以实现逻辑只能交给 AI 来写了🐶,我就负责改吧改吧: 其实驯服 AI 的过程并不顺利,尝试了多次才勉强给我想要的答案,当然还有一个重要原因是我 prompt 写的太烂:

这个过程总结起来就是:

  1. 获取 svg 数据
  2. 创建临时路径
  3. 通过 cavans 画出来
  4. 通过 a 标签下载

需要源码的话,可以关注微信公众号co松柏回复png获取。

相关推荐
UIUV16 分钟前
模块化CSS学习笔记:从作用域问题到实战解决方案
前端·javascript·react.js
aoi17 分钟前
解决 Vue 2 大数据量表单首次交互卡顿 10s 的性能问题
前端·vue.js
Kakarotto18 分钟前
使用ThreeJS绘制东方明珠塔模型
前端·javascript·vue.js
donecoding19 分钟前
TypeScript `satisfies` 的核心价值:两个例子讲清楚
前端·javascript
德育处主任19 分钟前
『NAS』在群晖部署一个文件加密工具-hat.sh
前端·算法·docker
cup11321 分钟前
【原生 JS】支持加密的浏览器端 BYOK AI SDK,助力 Vibe Coding
前端
Van_Moonlight24 分钟前
RN for OpenHarmony 实战 TodoList 项目:顶部导航栏
javascript·开源·harmonyos
技术狂小子24 分钟前
前端开发中那些看似微不足道却影响体验的细节
javascript
用户120391129472624 分钟前
使用 Tailwind CSS 构建现代登录页面:从 Vite 配置到 React 交互细节
前端·javascript·react.js
杨进军24 分钟前
模拟 Taro 实现编译多端样式文件
前端·taro