在项目中经常会遇到需要将不同的二维码放到一张通用图片上,提供用户下载
简单来说,就是利用canvas将同等比例的二维码在图片上叠加,生成海报
1. 设置相应比例
一般来说海报背景都是固定的,可以直接放在public文件夹,二维码可根据后台返回数据,也可用canvas生成,在此不多赘述1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19import posterBgImg from '../public/images/poster_bg.png';// 海报底图
import qrcodeImg from '../public/images/qrcode.png';// 二维码
export default{
name: 'qrcode-in-poster',
data(){
return {
posterBgImg,
qrcodeImg,
posterSize: 930/650,// 海报高宽比例
qrCodeSize: {// 二维码与海报对应比例 =》 用于设置二维码在海报中的位置
width: 270/650,
height: 270/930,
left: 190/650,
top: 448/650
},
poster: '',// 合成图片
}
}
};
2. 获取屏幕宽度
限定移动端最大宽度为 480px1
2
3
4
5
6computed: {
screenWidth(){
let w = document.body.clientWidt || document.documentElement.clientWidth || 375;
return w > 480 ? 480 : w ;
}
};
3. 组合图片
1 | methods: { |
1 | mounted(){ |
4. 下载
点击下载合成图片
1 | methods: { |
tips:不适用于微信浏览器,只能提示用户长按保存。
扫描二维码,分享此文章