在網(wǎng)" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運(yùn)營 > canvas 繪制證書

canvas 繪制證書

時(shí)間:2023-07-22 00:15:01 | 來源:網(wǎng)站運(yùn)營

時(shí)間:2023-07-22 00:15:01 來源:網(wǎng)站運(yùn)營

canvas 繪制證書:最近公司的新項(xiàng)目要給參與答題的同學(xué)頒發(fā)一個(gè)獎(jiǎng)狀,老大說有公司有一套比較成熟的系統(tǒng),但不是由前端來完成。我想了一下這東西用canvas就能搞定。之后就根據(jù)自己現(xiàn)有的知識來搞了一下。先上效果圖

在網(wǎng)上搜了一下發(fā)現(xiàn)有好多說繪制出來的圖片跟文字特別模糊的,我個(gè)人沒有遇到這個(gè)問題。具體我也不清楚他們是怎么回事,但是感覺他們應(yīng)該沒有設(shè)置canvas的width和height導(dǎo)致。

<template> <div> <canvas id="sz" width="800" height="600"></canvas> <button id="saveBtn" type="button" @click="saveImg">保存圖片</button> </div></template>設(shè)置canvas的width和height屬性,這個(gè)屬性會決定你下載下來的圖片的尺寸。

new一個(gè)image對象作為畫板的背景, 通過ctx.drawImage()設(shè)置畫板的背景圖片的起始寬高。

注意要在image加載之后進(jìn)行繪制,不然圖片會不顯示。

同樣的文字的繪制也要在image加載后執(zhí)行,在image加載之前繪制的話會被圖片遮蓋住。這樣的話基本上就可以實(shí)現(xiàn)通過canvas繪制一張證書了。

creatDarw() { //創(chuàng)建畫板 let c1 = document.querySelector('#sz') let ctx = c1.getContext('2d') var img = new Image(); img.src = require("../assets/images/model.png") img.onload = function() { ctx.drawImage(img,0,0,800,600) ctx.font = "36px 微軟雅黑"; ctx.fillStyle = "#EC5E37"; ctx.fillText("恭喜法外狂徒 張三 獲得一等獎(jiǎng)!",160,330); } } 好了繪制好的圖片怎么讓用戶下載下來呢?這里我是利用a標(biāo)簽的download屬性來實(shí)現(xiàn)的。

canvas的toDataURLrl()屬性會返回經(jīng)過base64編譯過得圖片路徑,我們可以通過這個(gè)路徑得到繪制好的圖片。

saveImg() { //下載保存圖片 /* let c1 = document.querySelector('#sz') let urlData = c1.toDataURL() let img = new Image() img.src = urlData; */ let downloadA = document.createElement('a'); downloadA.setAttribute('download','獎(jiǎng)狀') downloadA.href = urlData; downloadA.click() }移動(dòng)端不能通過a 標(biāo)簽下載,一般是長按圖片進(jìn)行下載。但canvas不是image不能調(diào)起圖片下載的接口,可以使用上面注釋掉的內(nèi)容在頁面中append一張圖片,把canvas畫板刪除掉,在頁面上展示一張圖片,進(jìn)行圖片的下載。

到這還有很多問題,比如fillText不能自動(dòng)換行,之后再進(jìn)行解決。

關(guān)鍵詞:證書,繪制

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉