news 2026/4/23 14:02:52

商城后台管理系统 02, Vue项目-下载图片资源

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
商城后台管理系统 02, Vue项目-下载图片资源
html2canvas 官网: http://html2canvas.hertzen.com/

首先关于canvas,可以看看官网https://www.canvasapi.cn/HTMLCanvasElement/,

canvasjs图标库的官网:https://canvasjs.com/jquery-charts/

canvas官网

https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLCanvasElement/toDataURL HTMLCanvasElement.toDataURL() 方法返回一个包含图片表示的 data URI,此图片的格式由 type 参数指定。 可以指定所需的文件格式和图片质量。如果未指定文件格式,或指定的文件格式不受支持,则数据将以 image/png 导出。换句话说,如果传入的类型非 image/png,但是返回的值以 data:image/png 开头,那么这个类型是不受支持的。 浏览器被要求支持 image/png,许多浏览器也会支持 image/jpeg 和 image/webp 在内的其他格式。 对于支持编码分辨率元数据的文件格式,创建的图像数据将具有 96dpi 的分辨率。
Vue项目-下载图片资源 实现代码如下
1, src/views/User/index.js <template> <div class="user"> <div class="hetong"> <!-- 1, 查看合同 --> 签约合同内容:<el-button type="primary" size="small" @click="look">查看合同</el-button> </div> <VuePdf ref="myPdf" /> <!-- 2, 查看发票 --> <div class="money"> <el-row :gutter="20"> <el-col :span="8"> <el-card class="box-card"> <div slot="header" class="clearfix"> <span>卡片名称</span> <el-button @click="download" style="float: right; padding: 3px 0;" type=" text">下载发票</el-button> </div> <div class="text item"> <img ref="img" style="width: 400px;" :src="imgUrl" alt="" /> </div> </el-card> </el-col> <el-col :span="8"> <el-card class="box-card"> <div slot="header" class="clearfix"> <span>卡片名称</span> <el-button @click="downs" style="float: right; padding: 3px 0;" type=" text">下载不同源发票</el-button> </div> <div class="text item"> <img ref="myimg" style="width: 400px;" src="../../assets/images/88.png" alt="" /> </div> </el-card> </el-col> <el-col :span="8"> <el-card class="box-card"> <div slot="header" class="clearfix"> <span>卡片名称</span> <el-button @click="down()" style="float: right; padding: 3px 0;" type=" text">下载本地发票</el-button> </div> <div class="text item"> <img ref="img" style="width: 400px;" :src="imgUrl" alt="" /> </div> </el-card> </el-col> </el-row> </div> </div> </template> <script> import VuePdf from '@/views/User/VuePdf'; import img from '@/assets/images/88.png'; export default { data() { return { imgUrl: img, }; }, components: { VuePdf }, methods: { // 查看合同 look() { this.$refs.myPdf.dialogVisible = true }, download() { // 1, 新窗口打开网址 右键保存 look() open() let url = this.$refs.img; console.log(url.src); window.location.href = url.src; }, // 2, 必须同源才能下载 可以直接下载 down() { var alink = document.createElement("a"); alink.href = this.imgUrl; console.log(this.imgUrl); alink.download = "pic"; // 图片名 alink.click(); }, // 解决图片不同源下载问题 downloadImage(imgsrc, name) { // 下载图片地址和图片名 创建图片 var image = new Image(); // <img /> // 解决跨域 canvas 污染问题 image.setAttribute("crossOrigin", "anonymous"); // 读图片 image.onload = function() { var canvas = document.createElement("canvas"); canvas.width = image.width; canvas.height = image.height; var context = canvas.getContext("2d"); context.drawImage(image, 0, 0, image.width, image.height); // 得到图片的 base64 编码数据 图片格式 默认为 image/png var url = canvas.toDataURL("image/png"); // 生成一个 a 元素 var a = document.createElement("a"); // 创建一个单击事件 var event = new MouseEvent("click"); // 设置图片名称 a.download = name || "photo"; // 将生成的URL设置为a.href属性 a.href = url; // 触发a的单击事件 a.dispatchEvent(event); }; // 给图片赋值 image.src = imgsrc; }, downs() { this.downloadImage(this.$refs.myimg.src, "pic"); }, }, }; </script> <style lang="less" scoped> .user { margin: 10px; } </style>

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/10 16:52:20

spark的静态内存管理机制

Spark的静态内存管理机制 Apache Spark 是一个分布式计算框架,其内存管理机制对于性能至关重要。静态内存管理(Static Memory Management)是 Spark 早期版本(如 1.6 之前)中采用的一种固定内存分配策略。它通过预先划分内存区域来管理执行和存储任务,确保资源隔离但缺乏…

作者头像 李华
网站建设 2026/4/17 13:48:48

Wechaty v1.20.2终极指南:5大RPA功能让聊天机器人开发效率飙升300%

Wechaty v1.20.2终极指南&#xff1a;5大RPA功能让聊天机器人开发效率飙升300% 【免费下载链接】wechaty 项目地址: https://gitcode.com/gh_mirrors/wec/wechaty 还在为微信机器人开发中的复杂协议配置而头疼吗&#xff1f;&#x1f914; 每次切换平台都要手动修改环境…

作者头像 李华
网站建设 2026/4/18 17:22:38

如何实现高效分布式存储系统的性能优化与调优

如何实现高效分布式存储系统的性能优化与调优 【免费下载链接】rustfs &#x1f680; High-performance distributed object storage that is faster than MinIO 项目地址: https://gitcode.com/GitHub_Trending/rus/rustfs 在数据爆炸式增长的时代&#xff0c;分布式存…

作者头像 李华
网站建设 2026/4/21 8:38:35

Google Cloud语音与视觉AI:企业级智能应用架构深度解析

Google Cloud语音与视觉AI&#xff1a;企业级智能应用架构深度解析 【免费下载链接】google-cloud-go Google Cloud Client Libraries for Go. 项目地址: https://gitcode.com/GitHub_Trending/go/google-cloud-go 在数字化转型浪潮中&#xff0c;智能语音处理和计算机视…

作者头像 李华
网站建设 2026/4/17 16:02:36

Stressapptest专业指南:打造坚不可摧的系统稳定性防线

Stressapptest专业指南&#xff1a;打造坚不可摧的系统稳定性防线 【免费下载链接】stressapptest Stressful Application Test - userspace memory and IO test 项目地址: https://gitcode.com/gh_mirrors/st/stressapptest Stressapptest作为业界知名的用户空间内存与…

作者头像 李华