vue-canvas-poster
vue 組件-簡(jiǎn)單屬性畫(huà) Canvas 圖
github
一個(gè)通過(guò) css 屬性畫(huà) canvas 圖片的輕量級(jí)的 vue 組件
(A lightweight vue components use canvas draw image by css properties.)
具有如下特性:
繪制文本(換行、超出內(nèi)容省略號(hào)、中劃線、下劃線、文本加粗)
繪制圖片(圓角、旋轉(zhuǎn))
繪制矩形(圓角、旋轉(zhuǎn))
繪制二維碼
生成效果 掃碼體驗(yàn)上線效果 安裝 通過(guò) npm 安裝# npm npm i vue-canvas-poster --save使用組件
template
import vueCanvasPoster from "vue-canvas-poster" components: { vueCanvasPoster } // or Global Install import Vue from "vue" import vueCanvasPoster from "vue-canvas-poster" Vue.use(vueCanvasPoster)
{ width: 550, height: 876, views: [ { type: "rect", top: 0, left: 0, background: "#f4f5f7", width: 550, height: 876 }, { type: "image", url: "https://avatars0.githubusercontent.com/u/35954879?s=460&v=4", left: 36, top: 20, width: 80, height: 80, radius: 40 }, { type: "text", content: "乖摸摸頭的小店", fontSize: 26, bolder: true, top: 48, left: 136, width: 360, breakWord: true, MaxLineNumber: 1, }, { type: "rect", top: 120, left: 12, background: "#FFFFFF", width: 526, height: 540, radius: 10 }, // 本地圖片 { type: "image", url: require("./assets/1.jpg"), left: 25, top: 150, width: 332, height: 332, }, // 網(wǎng)絡(luò)圖片 { type: "image", url: "https://tgoods.top1buyer.com/res/testfile/imgs/20190702180744/MR9600-Pink/2.jpg", left: 364, top: 150, width: 160, height: 160 }, { type: "image", url: "https://tgoods.top1buyer.com/res/testfile/imgs/20190702180744/MR9600-Pink/3.jpg", left: 364, top: 320, width: 160, height: 160 }, { type: "text", content: `18987、安奈兒童裝上衣條紋童裝上衣條紋童裝上衣 條紋童裝上衣`, color: "#666666", fontSize: 22, top: 507, left: 25, width: 450, lineHeight: 33, MaxLineNumber: 2, breakWord: true }, { type: "text", content: `勁爆價(jià):`, fontSize: 24, top: 608, left: 26, }, { type: "text", content: `¥39.00`, color: "#E5463E", fontSize: 36, border: true, top: 601, left: 116 }, { type: "text", content: `¥259.00`, color: "#999999", fontSize: 26, border: true, top: 609, left: 243, textDecoration: "line-through" }, { type: "rect", top: 647, left: 439, background: "#fff", width: 28, height: 28, deg: 45 }, { type: "text", content: `長(zhǎng)按或掃描二維碼`, fontSize: 18, color: "#999999", top: 829, left: 385 }, // 本地圖片 { type: "image", url: require("./assets/slogen.png"), left: 26, top: 821, width: 218, height: 24 }, { type: "qrcode", content: "https://github.com/sunnie1992/vue_canvas_poster", background: "#fff", color: "#000", left: 392, top: 690, width: 130, height: 130 }, ] }組件參數(shù)解釋
字段 | 類(lèi)型 | 必填 | 描述 |
---|---|---|---|
width | Number | 是 | 畫(huà)布寬度 |
height | Number | 是 | 畫(huà)布高度 |
views | Object Array(對(duì)象數(shù)組) | 是 | 看下文 |
字段名 | 類(lèi)型 | 默認(rèn)值 | 描述 |
---|---|---|---|
top | Number | 0 | 距離頂部的距離 |
left | Number | 0 | 距離左側(cè)的距離 |
width | Number | 0 | 寬度 |
height | Number | 0 | 高度 |
background | String | "white" | 背景顏色 |
radius | Number | 0 | 圓角 |
deg | Number | 0 | 旋轉(zhuǎn)角度 (目前不能跟 radius 一起用) |
字段名 | 類(lèi)型 | 默認(rèn)值 | 描述 |
---|---|---|---|
top | Number | 0 | 距離頂部的距離 |
left | Number | 0 | 距離左側(cè)的距離 |
content | String | "" | 文本內(nèi)容 |
fontSize | Number | 0 | 文字大小 |
color | String | black | 顏色 |
lineHeight | Number | 20 | 行高,多行起作用 |
breakWord | Boolean | false | 換行 |
MaxLineNumber | Int | 2 | 根據(jù)寬度換行 ,需要設(shè)置 breakWord: true ,超出行隱藏顯示為... |
width | Number | 文本寬度 | |
bolder | String | false | 加粗 |
textDecoration | String | none | underline(下劃線)、line-through(貫穿線) |
字段 | 類(lèi)型 | 默認(rèn)值 | 描述 |
---|---|---|---|
top | Number | 0 | 距離頂部的距離 |
left | Number | 0 | 距離左側(cè)的距離 |
url | String | "" | 圖片地址,也支持本地圖片如:/images/1.jpeg |
width | Number | 0 | 寬度 |
height | Number | 0 | 高度 |
radius | Number | 0 | 圓角 |
deg | Number | 0 | 旋轉(zhuǎn)角度 (目前不能跟 radius 一起用) |
字段 | 類(lèi)型 | 默認(rèn)值 | 描述 |
---|---|---|---|
top | Number | 0 | 距離頂部的距離 |
left | Number | 0 | 距離左側(cè)的距離 |
content | String | "" | 鏈接地址 |
width | Number | 0 | 寬度 |
height | Number | 0 | 高度 |
background | String | "" | 背景色 |
color | String | black | 二維碼顏色 |
返回生成 base64 圖片的本地 url,設(shè)置 src
methods: { success(src) { // 設(shè)置img的src this.src = src } }fail
返回失敗信息
fail(err) { console.log("fail", err) }問(wèn)題反饋
有什么問(wèn)題可以提 issue 或掃描微信二維碼跟我聯(lián)系
提 issue
關(guān)于我您可以掃描添加下方的微信并備注 Sol 加交流群,給我提意見(jiàn),交流學(xué)習(xí)。
如果對(duì)你有幫助送我一顆小星星(づ ̄3 ̄)づ╭?~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/106411.html
摘要:啦啦啦,首先說(shuō)下需求,產(chǎn)品想讓用戶(hù)在我們內(nèi),分享一張圖片到微信等平臺(tái)。圖片中包含用戶(hù)的姓名頭像和帶著自己信息的二維碼。然后,如何生成這張海報(bào)呢首先我們老大告訴我有一個(gè)插件叫其作用就是可以將節(jié)點(diǎn)轉(zhuǎn)化成圖片,是個(gè)不錯(cuò)的東西。 啦啦啦,首先說(shuō)下需求,產(chǎn)品想讓用戶(hù)在我們app內(nèi),分享一張圖片到微信、qq等平臺(tái)。圖片中包含用戶(hù)的姓名、頭像、和帶著自己信息的二維碼。然后,如何生成這張海報(bào)呢~~~首...
摘要:啦啦啦,首先說(shuō)下需求,產(chǎn)品想讓用戶(hù)在我們內(nèi),分享一張圖片到微信等平臺(tái)。圖片中包含用戶(hù)的姓名頭像和帶著自己信息的二維碼。然后,如何生成這張海報(bào)呢首先我們老大告訴我有一個(gè)插件叫其作用就是可以將節(jié)點(diǎn)轉(zhuǎn)化成圖片,是個(gè)不錯(cuò)的東西。 啦啦啦,首先說(shuō)下需求,產(chǎn)品想讓用戶(hù)在我們app內(nèi),分享一張圖片到微信、qq等平臺(tái)。圖片中包含用戶(hù)的姓名、頭像、和帶著自己信息的二維碼。然后,如何生成這張海報(bào)呢~~~首...
摘要:啦啦啦,首先說(shuō)下需求,產(chǎn)品想讓用戶(hù)在我們內(nèi),分享一張圖片到微信等平臺(tái)。圖片中包含用戶(hù)的姓名頭像和帶著自己信息的二維碼。然后,如何生成這張海報(bào)呢首先我們老大告訴我有一個(gè)插件叫其作用就是可以將節(jié)點(diǎn)轉(zhuǎn)化成圖片,是個(gè)不錯(cuò)的東西。 啦啦啦,首先說(shuō)下需求,產(chǎn)品想讓用戶(hù)在我們app內(nèi),分享一張圖片到微信、qq等平臺(tái)。圖片中包含用戶(hù)的姓名、頭像、和帶著自己信息的二維碼。然后,如何生成這張海報(bào)呢~~~首...
摘要:海報(bào)生成示例最近智酷君在做小程序生成海報(bào)的項(xiàng)目中遇到一些棘手的問(wèn)題,在網(wǎng)上查閱了各種資料,也踩扁了各種坑,智酷君希望把這些填坑經(jīng)驗(yàn)整理一下分享出來(lái),避免后來(lái)的兄弟重復(fù)掉坑。 showImg(https://segmentfault.com/img/bVbs5V8?w=343&h=517);海報(bào)生成示例 最近智酷君在做[小程序]canvas生成海報(bào)的項(xiàng)目中遇到一些棘手的問(wèn)題,在網(wǎng)上查閱了...
閱讀 1447·2023-04-25 16:31
閱讀 2053·2021-11-24 10:33
閱讀 2753·2021-09-23 11:33
閱讀 2542·2021-09-23 11:31
閱讀 2920·2021-09-08 09:45
閱讀 2348·2021-09-06 15:02
閱讀 2656·2019-08-30 14:21
閱讀 2323·2019-08-30 12:56