vue使用Canvas在畫布上添加圖片方式
更新時間:2023年04月18日 14:12:34 作者:玫瑰花開一片一片
這篇文章主要介紹了vue使用Canvas在畫布上添加圖片方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
使用Canvas在畫布上添加圖片
首先在template 里面創(chuàng)建一個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>總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Element-UI介紹主題定制、自定義組件和插件擴展的代碼示例
本文介紹了使用Element-UI實現(xiàn)主題定制、自定義組件和擴展插件的方法和實用案例,在開發(fā)過程中,我們可以根據(jù)自己的需求,靈活選擇相關的技術手段,并不斷探索和嘗試,以提高開發(fā)效率和用戶體驗,感興趣的朋友跟隨小編一起看看吧2024-02-02
Element el-checkbox-group v-model不支持對象(object)解決方案
本文主要介紹了Element el-checkbox-group v-model不支持對象(object)解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-05-05
vue中實現(xiàn)點擊空白區(qū)域關閉彈窗的兩種方法
這篇文章主要介紹了vue中實現(xiàn)點擊空白區(qū)域關閉彈窗的兩種方法,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下2020-12-12
vue2響應式原理之Object.defineProperty()方法的使用
這篇文章主要介紹了vue2響應式原理之Object.defineProperty()方法的使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10

