摘要: 简单实用的开源工具。
- 作者:诗人的咸鱼
- 原文:小程序生成分享海报,一个json就够了。同时支持web
Fundebug经授权转载,版权归原作者所有。
需求
在项目里写过几个canvas生成分享海报页面后,觉得这是个重复且冗余的工作.于是就想有没有能通过类似json直接生成海报的库.
然后就在github找到到两个项目:
- wxa-plugin-canvas,不太喜欢配置文件的写法.就没多去了解
- mp_canvas_drawer,使用方式就比较符合直觉,不过可惜功能有点少.
然后就想着能不能自己再造个轮子.于是就有了这个项目 json2canvas,你可以简单的理解为是mp_canvas_drawer的增强版吧.
json2canvas canvas绘制海报,写个json就够了.
项目的canvas绘制是基于cax实现的.所以天然的带来一个好处,json2canvas同时支持小程序和web
功能
- 支持缩放. 如果设计稿是750,而画布只有375时.你不需要任何换算,只需要将scale设置为0.5即可.
- 支持文本(长文本自动换行,感谢 coolzjy@v2ex 提供的正则 https://regexr.com/4f12l ,优化了换行的计算方式(不会粗暴的折断单词))
- 支持图片(圆角)
- 支持圆型,矩形,矩形圆角
- 支持分组(cax里很好用的一个功能)
- 同时支持小程序和web
示例
web-demo 界面左边的json,可以进行编辑,直接看效果哟~
小程序-demo
git clone https://github.com/willnewii/json2canvas.git
微信开发者工具导入项目 example/weapp/
小程序安装
npm i json2canvas
微信开发者工具->工具->构建npm
在需要使用的界面引入Component
{
效果图
想要生成一个这样的海报,需要怎么做?(红框是图片元素,蓝框是文字元素,其余的是一张背景图。)
一个json就搞定.具体支持的元素和参数,请查看项目readme
{
问题反馈
有什么问题可以直接提issue
关于Fundebug
Fundebug专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java线上应用实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了10亿+错误事件,付费客户有阳光保险、核桃编程、荔枝FM、掌门1对1、微脉、青团社等众多品牌企业。欢迎大家免费试用!