图片下载之 svg 转 png

前言

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

实现方式

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

这个过程总结起来就是:

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

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

相关推荐
rexling18 小时前
【Spring Boot】Spring Boot解决循环依赖
java·前端·spring boot
我有一棵树8 小时前
Vue 项目中全局样式的正确写法:不要把字体和主题写在 #app 上
前端·javascript·vue.js
前端小咸鱼一条9 小时前
15. setState的更新是异步的吗
react.js
龙仔CLL9 小时前
微前端乾坤vue3项目使用tinymce,通过npm,yarn,pnpm包安装成功,但是引用报错无法使用
javascript·arcgis·npm
Luna-player9 小时前
npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本,解决方法
前端·npm·node.js
悢七9 小时前
windows npm打包无问题,但linux npm打包后部分样式缺失
linux·前端·npm
Felicity_Gao9 小时前
uni-app App升级功能实现
前端·学习·uni-app
CS Beginner9 小时前
【搭建】个人博客网站的搭建
java·前端·学习·servlet·log4j·mybatis
Mountain0810 小时前
解决 Node.js 启动报错:digital envelope routines 错误全记录
javascript·npm·node.js
老程序员刘飞11 小时前
node.js 和npm 搭建项目基本流程
前端·npm·node.js