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)
// 設(shè)置字體大小
cxt.font = "36px Microsoft YaHei"
// 更改字號后,必須重置對齊方式,否則居中麻煩。設(shè)置文本的垂直對齊方式
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)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Element-UI介紹主題定制、自定義組件和插件擴(kuò)展的代碼示例
本文介紹了使用Element-UI實(shí)現(xiàn)主題定制、自定義組件和擴(kuò)展插件的方法和實(shí)用案例,在開發(fā)過程中,我們可以根據(jù)自己的需求,靈活選擇相關(guān)的技術(shù)手段,并不斷探索和嘗試,以提高開發(fā)效率和用戶體驗(yàn),感興趣的朋友跟隨小編一起看看吧2024-02-02
深入理解vue.js雙向綁定的實(shí)現(xiàn)原理
vue.js是MVVM結(jié)構(gòu)的,同類的還有AngularJs;至于MVC、MVP、MVVM的比較網(wǎng)上已經(jīng)有很多了,這樣不再重復(fù)。這篇文章將給大家深入的介紹vue.js雙向綁定的實(shí)現(xiàn)原理,有需要的朋友們可以參考借鑒,下面跟著小編一起來看看吧。2016-12-12
Element el-checkbox-group v-model不支持對象(object)解決方案
本文主要介紹了Element el-checkbox-group v-model不支持對象(object)解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
vue中實(shí)現(xiàn)點(diǎn)擊空白區(qū)域關(guān)閉彈窗的兩種方法
這篇文章主要介紹了vue中實(shí)現(xiàn)點(diǎn)擊空白區(qū)域關(guān)閉彈窗的兩種方法,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下2020-12-12
vue2響應(yīng)式原理之Object.defineProperty()方法的使用
這篇文章主要介紹了vue2響應(yīng)式原理之Object.defineProperty()方法的使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10
Vue 大文件上傳和斷點(diǎn)續(xù)傳的實(shí)現(xiàn)
文件上傳在很多項(xiàng)目中都用的到,如果是幾M的很快就傳送完畢,如果是大文件呢?本文就介紹了Vue 大文件上傳和斷點(diǎn)續(xù)傳的實(shí)現(xiàn),感興趣的可以了解一下2021-06-06

