news 2026/7/7 17:37:51

商城后台管理系统 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/7/6 1:23:42

15、密码学编程问题及解决方案

密码学编程问题及解决方案 1. 引言 密码学在信息安全领域扮演着至关重要的角色。本文将介绍几种常见密码学算法的编程实现,包括凯撒密码、维吉尼亚密码、Base64编码解码、用户凭证验证等,并给出具体的代码实现和使用示例。 2. 凯撒密码 原理 :凯撒密码是一种古老且简单…

作者头像 李华
网站建设 2026/7/7 21:28:38

【毕业设计】SpringBoot+Vue+MySQL 高校竞赛管理系统平台源码+数据库+论文+部署文档

摘要 随着高校竞赛活动的日益增多&#xff0c;传统的人工管理方式已无法满足高效、精准的需求。竞赛信息的发布、报名、评审等环节涉及大量数据处理&#xff0c;容易出现信息滞后、统计错误等问题。高校竞赛管理系统平台的建设成为解决这一问题的有效途径&#xff0c;通过信息化…

作者头像 李华
网站建设 2026/7/5 21:51:10

Cube-Studio模型部署平台:让AI推理服务化繁为简

Cube-Studio模型部署平台&#xff1a;让AI推理服务化繁为简 【免费下载链接】cube-studio cube studio开源云原生一站式机器学习/深度学习AI平台&#xff0c;支持sso登录&#xff0c;多租户/多项目组&#xff0c;数据资产对接&#xff0c;notebook在线开发&#xff0c;拖拉拽任…

作者头像 李华
网站建设 2026/7/8 5:31:49

阿里开源Wan2.1-I2V:14B参数视频生成模型完整部署指南

阿里开源Wan2.1-I2V&#xff1a;14B参数视频生成模型完整部署指南 【免费下载链接】Wan2.1-I2V-14B-480P 项目地址: https://ai.gitcode.com/hf_mirrors/Wan-AI/Wan2.1-I2V-14B-480P 快速上手&#xff1a;从零开始的视频AI生成实战教程 阿里巴巴通义实验室最新开源的W…

作者头像 李华
网站建设 2026/7/7 10:30:13

终极指南:3步上手Quasar远程管理工具,轻松掌控Windows系统

终极指南&#xff1a;3步上手Quasar远程管理工具&#xff0c;轻松掌控Windows系统 【免费下载链接】Quasar Remote Administration Tool for Windows 项目地址: https://gitcode.com/gh_mirrors/qua/Quasar 还在为管理多台Windows电脑而烦恼吗&#xff1f;Quasar远程管理…

作者头像 李华
网站建设 2026/7/7 12:42:26

PostCSS-CSSNext警告系统:3个实战场景深度解析与高效应对策略

PostCSS-CSSNext警告系统&#xff1a;3个实战场景深度解析与高效应对策略 【免费下载链接】postcss-cssnext postcss-cssnext has been deprecated in favor of postcss-preset-env. 项目地址: https://gitcode.com/gh_mirrors/po/postcss-cssnext 当您在CSS开发中遇到黄…

作者头像 李华