前端canvas生成海报

话不多说直接上代码

<div class="saveImgs">
			<img src="" ref="codeEnd" style="width: 100%;height: 100%;" alt="">
			<img src="../../static/image/my_codeBg2.jpg" style="width: 750px;" ref="codeBg" alt="">
			//(这是背景图)
			<img :src="imgSrc" style="width: 170px;height: 170px;" ref="codeLogo" alt="">
			//(这是接上一篇生成的二维码图片)
			<span ref="headname">文字内容</span>
</div>
<div class="gzhBtn"><button type="primary" @click="saveImage">查看海报</button></div>
saveImage() {
			this.$vux.loading.show();
			let codeLogo = this.$refs.codeLogo;
			let codeBg = this.$refs.codeBg;
			let headname = this.$refs.headname;
			var canvas = document.createElement('canvas');
			let minW = codeLogo.offsetWidth;
			let minH = codeLogo.offsetHeight;
			let maxW = codeBg.offsetWidth;
			let maxH = codeBg.offsetHeight;
			canvas.width = maxW;
			canvas.height = maxH;
			var context = canvas.getContext('2d');
			context.drawImage(codeBg, 0, 0, maxW, maxH, 0,0, maxW, maxH);
			context.drawImage(codeLogo, this.bgx, this.bgy, minW, minH);
			context.font='bold 42px Adobe Ming Std' //需要加粗的话前面加bold
			this.loginInfo.user_name=this.loginInfo.user_name.substring(0,7);
			context.textAlign = 'center';//这是以横坐标为参考线为参考线来使参考线在文字的正中间
			context.fillText(文字内容,380,835);
			let hbimg = canvas.toDataURL('image/png');
			this.$api.storage('hbimg',hbimg);//最终合成的图片
			this.$vux.loading.hide();
			uni.navigateTo({
				url: '/pages/getimg/getimg'
			})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值