[js] 实现多张图片合成一张的效果
原理是使用canvas画布。
在页面加载前 mounted方法里:
setTimeout(() => {
this.changeimg();
}, 1000);
changeimg( )方法:
changeimg(){
var self = this;
var imgsrcArray = [
require('../../assets/image/income/background.png'),
$('#qrcode canvas')[0].toDataURL('image/png')
];
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
canvas.width = 750;
canvas.height = 1334;
var imglen = imgsrcArray.length;
var showContent = '我是'+this.showPhone;
var drawimg = (function f(n){
if(n < imglen){
var img = new Image();
img.crossOrigin = 'Anonymous'; //解决跨域问题
img.onload = function(){
if(n == 0){
ctx.drawImage(img,0,0,750,1334);
ctx.font = '30px Adobe Ming Std';
ctx.fillText(showContent,250,800);
ctx.fillText('文字文字',250,850);
}else{
ctx.drawImage(img,250,900,250,250);
}
f(n+1);
}
img.src = imgsrcArray[n];
}else{
self.downloadUrl = canvas.toDataURL("image/jpeg");
self.downloadUrl = self.downloadUrl.replace("data:image/jpeg;base64,", "");
}
})(0);
}
本例中将一张背景图与二维码图合成一张图片 ,
二维码的生成也需要在此方法之前。
html:
<img style="width:100%;" :src="'data:image/jpeg;base64,' + downloadUrl" alt="">
<div style="opacity:0;position:absolute;bottom:0;" id="qrcode"></div>
个人简介
我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通