vue使用Canvas在畫布上添加圖片方式
使用Canvas在畫布上添加圖片
首先在template 里面創(chuàng)建一個(gè)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" // 更改字號(hào)后,必須重置對(duì)齊方式,否則居中麻煩。設(shè)置文本的垂直對(duì)齊方式 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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Element-UI介紹主題定制、自定義組件和插件擴(kuò)展的代碼示例
本文介紹了使用Element-UI實(shí)現(xiàn)主題定制、自定義組件和擴(kuò)展插件的方法和實(shí)用案例,在開發(fā)過(guò)程中,我們可以根據(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)原理,有需要的朋友們可以參考借鑒,下面跟著小編一起來(lái)看看吧。2016-12-12Element el-checkbox-group v-model不支持對(duì)象(object)解決方案
本文主要介紹了Element el-checkbox-group v-model不支持對(duì)象(object)解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05vue中實(shí)現(xiàn)點(diǎn)擊空白區(qū)域關(guān)閉彈窗的兩種方法
這篇文章主要介紹了vue中實(shí)現(xiàn)點(diǎn)擊空白區(qū)域關(guān)閉彈窗的兩種方法,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下2020-12-12vue2響應(yīng)式原理之Object.defineProperty()方法的使用
這篇文章主要介紹了vue2響應(yīng)式原理之Object.defineProperty()方法的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10Vue 大文件上傳和斷點(diǎn)續(xù)傳的實(shí)現(xiàn)
文件上傳在很多項(xiàng)目中都用的到,如果是幾M的很快就傳送完畢,如果是大文件呢?本文就介紹了Vue 大文件上傳和斷點(diǎn)續(xù)傳的實(shí)現(xiàn),感興趣的可以了解一下2021-06-06