vue-canvas-poster
vue 組件-簡單屬性畫 Canvas 圖
github
一個通過 css 屬性畫 canvas 圖片的輕量級的 vue 組件
(A lightweight vue components use canvas draw image by css properties.)
具有如下特性:
繪制文本(換行、超出內容省略號、中劃線、下劃線、文本加粗)
繪制圖片(圓角、旋轉)
繪制矩形(圓角、旋轉)
繪制二維碼
生成效果 掃碼體驗上線效果 安裝 通過 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, }, // 網絡圖片 { 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: `勁爆價:`, 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: `長按或掃描二維碼`, 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 }, ] }組件參數解釋
字段 | 類型 | 必填 | 描述 |
---|---|---|---|
width | Number | 是 | 畫布寬度 |
height | Number | 是 | 畫布高度 |
views | Object Array(對象數組) | 是 | 看下文 |
字段名 | 類型 | 默認值 | 描述 |
---|---|---|---|
top | Number | 0 | 距離頂部的距離 |
left | Number | 0 | 距離左側的距離 |
width | Number | 0 | 寬度 |
height | Number | 0 | 高度 |
background | String | "white" | 背景顏色 |
radius | Number | 0 | 圓角 |
deg | Number | 0 | 旋轉角度 (目前不能跟 radius 一起用) |
字段名 | 類型 | 默認值 | 描述 |
---|---|---|---|
top | Number | 0 | 距離頂部的距離 |
left | Number | 0 | 距離左側的距離 |
content | String | "" | 文本內容 |
fontSize | Number | 0 | 文字大小 |
color | String | black | 顏色 |
lineHeight | Number | 20 | 行高,多行起作用 |
breakWord | Boolean | false | 換行 |
MaxLineNumber | Int | 2 | 根據寬度換行 ,需要設置 breakWord: true ,超出行隱藏顯示為... |
width | Number | 文本寬度 | |
bolder | String | false | 加粗 |
textDecoration | String | none | underline(下劃線)、line-through(貫穿線) |
字段 | 類型 | 默認值 | 描述 |
---|---|---|---|
top | Number | 0 | 距離頂部的距離 |
left | Number | 0 | 距離左側的距離 |
url | String | "" | 圖片地址,也支持本地圖片如:/images/1.jpeg |
width | Number | 0 | 寬度 |
height | Number | 0 | 高度 |
radius | Number | 0 | 圓角 |
deg | Number | 0 | 旋轉角度 (目前不能跟 radius 一起用) |
字段 | 類型 | 默認值 | 描述 |
---|---|---|---|
top | Number | 0 | 距離頂部的距離 |
left | Number | 0 | 距離左側的距離 |
content | String | "" | 鏈接地址 |
width | Number | 0 | 寬度 |
height | Number | 0 | 高度 |
background | String | "" | 背景色 |
color | String | black | 二維碼顏色 |
返回生成 base64 圖片的本地 url,設置 src
methods: { success(src) { // 設置img的src this.src = src } }fail
返回失敗信息
fail(err) { console.log("fail", err) }問題反饋
有什么問題可以提 issue 或掃描微信二維碼跟我聯系
提 issue
關于我您可以掃描添加下方的微信并備注 Sol 加交流群,給我提意見,交流學習。
如果對你有幫助送我一顆小星星(づ ̄3 ̄)づ╭?~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/106411.html
摘要:啦啦啦,首先說下需求,產品想讓用戶在我們內,分享一張圖片到微信等平臺。圖片中包含用戶的姓名頭像和帶著自己信息的二維碼。然后,如何生成這張海報呢首先我們老大告訴我有一個插件叫其作用就是可以將節點轉化成圖片,是個不錯的東西。 啦啦啦,首先說下需求,產品想讓用戶在我們app內,分享一張圖片到微信、qq等平臺。圖片中包含用戶的姓名、頭像、和帶著自己信息的二維碼。然后,如何生成這張海報呢~~~首...
摘要:啦啦啦,首先說下需求,產品想讓用戶在我們內,分享一張圖片到微信等平臺。圖片中包含用戶的姓名頭像和帶著自己信息的二維碼。然后,如何生成這張海報呢首先我們老大告訴我有一個插件叫其作用就是可以將節點轉化成圖片,是個不錯的東西。 啦啦啦,首先說下需求,產品想讓用戶在我們app內,分享一張圖片到微信、qq等平臺。圖片中包含用戶的姓名、頭像、和帶著自己信息的二維碼。然后,如何生成這張海報呢~~~首...
摘要:啦啦啦,首先說下需求,產品想讓用戶在我們內,分享一張圖片到微信等平臺。圖片中包含用戶的姓名頭像和帶著自己信息的二維碼。然后,如何生成這張海報呢首先我們老大告訴我有一個插件叫其作用就是可以將節點轉化成圖片,是個不錯的東西。 啦啦啦,首先說下需求,產品想讓用戶在我們app內,分享一張圖片到微信、qq等平臺。圖片中包含用戶的姓名、頭像、和帶著自己信息的二維碼。然后,如何生成這張海報呢~~~首...
摘要:海報生成示例最近智酷君在做小程序生成海報的項目中遇到一些棘手的問題,在網上查閱了各種資料,也踩扁了各種坑,智酷君希望把這些填坑經驗整理一下分享出來,避免后來的兄弟重復掉坑。 showImg(https://segmentfault.com/img/bVbs5V8?w=343&h=517);海報生成示例 最近智酷君在做[小程序]canvas生成海報的項目中遇到一些棘手的問題,在網上查閱了...
閱讀 1442·2023-04-25 16:31
閱讀 2044·2021-11-24 10:33
閱讀 2749·2021-09-23 11:33
閱讀 2534·2021-09-23 11:31
閱讀 2909·2021-09-08 09:45
閱讀 2341·2021-09-06 15:02
閱讀 2650·2019-08-30 14:21
閱讀 2318·2019-08-30 12:56