使用Canvas在画布上添加图片
首先在template 里面创建一个dom
<div style="display:none">
<img ref="conf0" src="../../assets/image/tx.jpg">
</div>
然后画图代码 这样写
// 获取Canvas 画图
let myCanvas = this.$refs.myCanvas
var ctx = myCanvas.getContext('2d')
// 在Canvas画布 添加图片
var img = this.$refs.conf0
img.onload = () => {
ctx.drawImage(img, 0, 0)
}
使用canvas在图片上加上文字
<template>
<div>
<img src=""
alt=""
id="newimage"
style="width:278px;height:298px">
<canvas id="canvas"
width="278"
height="298">
</canvas>
</div>
</template>
<script>
export default {
data () {
return {
}
},
mounted () {
this.newImage('123#')
},
methods: {
newImage (text) {
// 生成图片
var imageBox = document.getElementById("newimage")
var canvas = document.getElementById("canvas")
var cxt = canvas.getContext("2d")
var img = new Image()
img.src = require('@/assets/louceng.png')
// 图片加载完成,才可处理
img.onload = () => {
// 画图(这里画布与图片等宽高)
cxt.drawImage(img, 0, 0)
// 设置字体大小
cxt.font = "36px Microsoft YaHei"
// 更改字号后,必须重置对齐方式,否则居中麻烦。设置文本的垂直对齐方式
cxt.textBaseline = 'middle'
cxt.textAlign = 'center'
// 距离左边的位置
var left = canvas.width / 2
// 距离上边的位置 (图片高-文字距离图片底部的距离)
var top = canvas.height * 0.14
// 文字颜色
cxt.fillStyle = "#ffffff"
// 文字在画布的位置
cxt.fillText(text, left, top)
imageBox.src = canvas.toDataURL("image/jpg")
// this.flag = 1
}
},
}
}
</script>
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。