Vue——利用canvas在图片上加上文字
<template><div><img src=""alt=""id="newimage"style="width:278px;height:298px"><canvas id="canvas"width="278"height="298"></canvas></div></t
·
<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>
更多推荐
已为社区贡献5条内容
所有评论(0)