一个可以不用写复杂Canvas逻辑的画报解决方案,傻瓜式开发Canvas海报

  • 介绍
    • 参数说明
      • config
      • images
      • images/config
      • images/config/round
      • texts
    • 原生微信小程序使用方法
    • uniapp使用方法
      • 程序页面.vue
  • 结尾

介绍

大家好! 这是一款可以通过JSON配置生成Canvas画报。
有原版本和uniapp版本
现阶段只能生成固定尺寸海报,如果有需求生成不固定商品图海报,等待2.0…

参数说明

参数 类型 是否必填 说明
config Array 配置项
config
参数 类型 是否必填 说明
background String 海报背景色(默认白色)
canvasWidth String 画布宽
canvasHeight String 画布高
images Array 图片或矩形配置项
texts Array 文字配置项
images
参数 类型 是否必填 说明
width number 矩形或者图片宽
height number 矩形或者图片高
url String 图片的Url(1、不填写就是矩形。2、可以填写网络路径可以是本地图。)
borderRadius number 圆角值
top number 相对于画布Y轴值
left number 相对于画布X轴值
zIndex number 层级
config Array 矩形配置
images/config
参数 类型 是否必填 说明
round Objeck 配置哪个方向的角是圆角,默认不传全是圆角
fillColor String 矩形填充颜色
type String fill / stroke / both,填充/描边/填充和描边
strokeColor String 描边色
images/config/round
参数 类型 是否必填 说明
leftTop Boolean 是否圆角
leftBottom Boolean 是否圆角
rightTop Boolean 是否圆角
rightBottom Boolean 是否圆角
texts
参数 类型 是否必填 说明
fontSize number 字体大小
color number 字体颜色(默认#000)
zIndex String 层级
fontWeight number 字体粗细
content number 文本内容
textAlign String 文字位置 left / center / right
textBaseline String top、bottom、middle、normal 位置 (默认bottom)
top number 相对于画布Y轴值
left number 相对于画布X轴值
maxLength number 文本最大长度(默认20)
line number 可展示几行(默认1)
lineHeight number 行高 (默认10)

原生微信小程序使用方法

A.wxml

// An highlighted block<Tool id="Tool" config="{{config}}" bindmyevent="onSuccessDraw"></Tool><view style="display: flex;justify-content: space-between;width: 100%;margin-top: 30px;"><button bindtap="onDrawImage" style="width:30%;background: rgb(0, 122, 0);color: #fff;">生成图片</button><button bindtap="onSaveImage" style="width:30%;background: rgb(0, 110, 161);color: #fff;">保存图片</button></view>

A.js

// An highlighted block
Page({data: {config: {background: 'transparent',canvasWidth: 375,canvasHeight: 667,images: [{width: 64,height: 64,url: '',borderRadius: 32,top: 35,left: 20,zIndex: 2,config: {round: {leftTop: true, leftBottom: true, rightTop: true, rightBottom: true, },fillColor: '#ff0000',type: 'stroke',strokeColor: '#000',}}],texts: [{fontSize: 16,color: '#fff',zIndex: 3,fontWeight: 100,content: '刘威威',textAlign: 'left',middle: '',top: 60,left: 92,maxLength: 9,line: 2}],},// 绘图完成之后的回调函数onSuccessDraw(e) {this.setData({canvasImg: e.detail //生成海报-本地Url})},//点击或者默认执行方法 开始画图ononDrawImage() {let startPainting = this.selectComponent('#Tool')startPainting.onStartPain()},})

uniapp使用方法

程序页面.vue
<template><view class="content"><CanvasToos ref="onToos" v-on:myevent="onSuccessDraw" :config="config"></CanvasToos><image :src="canvasImg" style="width: 375px;height: 667px;"></image><view style="display: flex;justify-content: space-between;width: 100%;margin-top: 30px;"><button @click="onDrawImage" style="width:30%;background: rgb(0, 122, 0);color: #fff;">生成图片</button><button @click="onSaveImage" style="width:30%;background: rgb(0, 110, 161);color: #fff;">保存图片</button></view></view>
</template><script>//Canvas-Toos.vue 是组件的文件名import CanvasToos from '@/components/canvas-toos/Canvas-Toos.vue';export default {components: {CanvasToos},data() {return {canvasImg: '',config: {/**同上**/ },}},onLoad() {},methods: {onDrawImage() {this.$refs.onToos.onStartPain()},//绘图完成回调函数onSuccessDraw(e) {console.log('✅ 绘图完成', e)this.canvasImg = e},}}
</script>

结尾

基本使用方法就这些,如果有不懂的 || 插件获取。联系微信:NovLiu_08

一个可以不用写复杂Canvas逻辑的画报解决方案,傻瓜式开发Canvas海报相关推荐

  1. 自己动手写CPU(3)逻辑、移位操作与空指令

    自己动手写CPU(3)逻辑.移位操作与空指令 指令说明 MIPS32指令集架构中定义的逻辑操作指令有8条: and.andi.or.ori.xor.xori.nor.lui,其中 ori指令已经实现. ...

  2. 一个日本人写的插件:Breath Controller

    Breath Controller 今天无意发现一个日本人写的 呼吸控制器,挺好玩的,可以从他的 主页 下载源代码. 这个插件目前只支持 人形动画,不过只需要简单的几行修改就可以支持 Generic动 ...

  3. 使用“不用写代码的IDE”是一种怎样的体验?

    不知道大家有没使用过全自动平台这种产品? 可能有些人还不知道我指的是啥,以一款今年比较流行的全自动软件开发平台为例,所谓「全自动」,就是你在开发一个项目时,不需要你写代码,只需要你画好对应的逻辑流程图 ...

  4. flask html 得到文本框 input的内容_flask入门 (二)(不用写代码的前端!)

    flask入门 (二)(不用写代码的前端!) 前言 今天要介绍的依然是 flask 框架,前面介绍的仅仅是 flask 快速搭建最小应用的知识点,既然我们需要自己做网站,那肯定离不开前端页面的制作. ...

  5. 弹力细胞,一个由JavaScript写的网页小游戏

    弹力细胞 (BounceCell) 一个由JavaScript写的网页小游戏 作为大一菜鸟,这是我第一次比较正式的写文章 [害臊] 游戏玩法 通过鼠标或触屏控制屏幕底部的滑动弹板将发射的小球反弹出去撞 ...

  6. 不用写代码就能学用Pandas,适合新老程序员的神器Bamboolib

    作者 | Rahul Agarwal 译者 | 陆离 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) 曾经,你有没有因为学习与使用 Pandas 进行数据检索等操作而感到厌烦 ...

  7. 一行代码不用写,就可以训练、测试、使用模型,这个star量1.5k的项目帮你做到...

    机器之心报道 机器之心编辑部 igel 是 GitHub 上的一个热门工具,基于 scikit-learn 构建,支持 sklearn 的所有机器学习功能,如回归.分类和聚类.用户无需编写一行代码即可 ...

  8. 一行代码都不用写,教你如何快速搭建Github博客!!!

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 转载自量子位 GitHub不仅可以传代码,还可以建博客.利用GitHub Page ...

  9. 一个LINUX高手写给初学者的话(转)

    现在好多的人开始接触电脑的时候,见到的应该是Windows98  说实话,98 已经是一个很人性化,封装的很好的一个系统了  一个对电脑一窍不通的人都能很快的使用它.这样很多人对  "电脑& ...

最新文章

  1. python与MySQL交互
  2. 【NLP】 NLP中应用最广泛的特征抽取模型-LSTM
  3. spring定时任务
  4. ES5、ES6、ES7、ES8
  5. 开发app用户协议_家电商城APP开发,方便用户选购家电商品
  6. 用html写出生日蛋糕,纯HTML5+CSS3制作生日蛋糕代码
  7. promise用法_【JavaScript 教程】异步操作——Promise 对象
  8. codevs 1415 比那名居天子
  9. python是编程语言吗
  10. 创建全局SystemTray.ProgressIndicator
  11. 【java】getWriter() has already been called for this
  12. 分享 :理解和管理社交媒体算法的4个想法
  13. 手动实现简易版小区快递柜管理系统 Version 0.1.1
  14. BJ模拟 Different Trips【树上后缀数组】
  15. python统计学课程_Python数据分析(统计分析)视频课程
  16. Linux 常用命令参考手册, 非常适合入门, 基本能满足工作日常使用。
  17. 开源 | 爱奇艺网络流量分析引擎QNSM及其应用
  18. Android相机开发: 触摸对焦,触摸测光,二指手势缩放
  19. 解决img撑大父盒子
  20. 99SE元件封装、常用库、分立元件名称

热门文章

  1. a8 内存 华硕k550d_2019年华硕k550d怎么样-精选word文档 (2页)
  2. 软件说明|Google地球影像下载及导航软件无法使用的解决办法
  3. 【转载】2020年中国乘用车前视系统TOP10供应商,本土仅经纬恒润入围!
  4. 阿里半跪过,任正非差点跳楼,京东被骗光钱:成年人的生活哪有容易二字?...
  5. u盘自动运行bat_如何让u盘插入电脑后自动播放 u盘插入电脑后自动播放方法
  6. 中国传媒大学2016级研究生信源作业第一次
  7. 如何才能不崩溃 7: Dealing with Nothing
  8. Numpy填充或截断数组到固定长度
  9. 苏州园林的盆景也是甲天下啊
  10. np.rot90()用法