微信小程序canvas绘制插件

news/2024/7/24 11:47:45 标签: 微信小程序, 小程序, 前端

针对小程序新推出的canvas 2d api 简单封装了几个常用功能,用于应付日常海报快捷生成等用途。

		<canvas id="myCanvas" type="2d"></canvas>

创建canvas

 	const myCanvas=await new AniCanvas('myCanvas')

myCanvas输出参数:

  • canvas:canvas对象
  • ctx:canvas上下文,可用于正常其他功能
 	myCanvas.ctx.beginPath();
        myCanvas.ctx.moveTo(0,text3.endTop);
        myCanvas.ctx.lineTo(400,text3.endTop);
        myCanvas.ctx.stroke();
  • height :画布高度
  • width:画布宽度
  • lrCenter:画布水平中线
  • tbCenter:画布垂直中线

为画布添加背景

 	myCanvas.setBg('yellow')

绘制文字 支持多行文本

参数

  • lineAlign:String (top,center,bottom)多行文本上下对齐
  • align:String (left,right,right)左右对齐
  • maxLine:Number 设置最大行数,超出显示省略号
  • maxWidth:设置最大宽度,超出自动换行
  • space:行间距

输出参数

  • endLeft 文字绘制右侧边缘
  • endTop 文字绘制下部边缘
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OhXaKYX2-1649520899026)(:/7a4765a3f9204f84afd26e6e189bc013)]
 	 const text1=myCanvas.setText({
            text:'AniCanvas测试AniCanvas测试AniCanvas测试AniCanvas测试AniCanvas测试AniCanvas测试AniCanvas测试AniCanvas测试AniCanvas测试AniCanvas测试AniCanvas测试AniCanvas测试AniCanvas测试AniCanvas测试',
            x:10,
            y:32,
            color:'#000',
            fontSize:14,
            maxWidth:120,
            space:5,
            maxLine:2,
            align:'left'
        })
	 //text1 :{endTop,endLeft}

为画布添加背景

 	myCanvas.setBg('yellow')

绘制网络路径图片

  • 下载网络图片并绘制功能
  • 自适应高度,如果不设置参数 则根据宽度自适应
 	 const qrCode=await myCanvas.setImage(url,x,y,width,height);

		const qrCode=await myCanvas.setImage('https://dummyimage.com/50x50/000/fff.jpg&text=head',100,100,110);

将当前画布生成图片

输出参数为绘制生成的临时路径,用于展示或上传服务端

		const img=await myCanvas.createImg()

将上一步画布生成的图片保存到本地

		let res=await myCanvas.saveImg()

完整项目地址:
https://gitee.com/huijia1/ani


http://www.niftyadmin.cn/n/1240837.html

相关文章

cad插件_CAD插件迷你建筑工具箱安装教程

插件下载[名称]&#xff1a;CAD插件-迷你建筑工具箱[大小]&#xff1a;14.9 MB [语言]&#xff1a;简体中文 [安装环境]&#xff1a;Win7/Win8/Win10[支持版本]&#xff1a;CAD2004—2020[32/64位下载链接]&#xff1a;pan.baidu.com/s/16aJpMaLBw3GezKuufP0lfA [提取码]: bye…

利用 Sharding-JDBC 解决数据库读写分离后,数据查询延时问题

点击上方蓝色“架构荟萃”关注我们&#xff0c;输入1024&#xff0c;你懂的 一般熟知 Mysql 数据库的朋友知道&#xff0c;当表的数据量达到千万级时&#xff0c;SQL 查询会逐渐变的缓慢起来&#xff0c;往往会成为一个系统的瓶颈所在。为了提升程序的性能&#xff0c;除了在表…

解决前端跨域问题-搭建反向代理服务器

(:/67f6172bf05d4353bcdb3b8dbdcc5865)] 开发中最常见的跨域问题 跨域问题的出现 “同源策略” &#xff1a;同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源&#xff08;即指在同一个域&#xff09;就是两个页面具有相同的协议&#xff08;prot…

SpringCloud 配置中心服务端配置解析流程分析

点击上方蓝色“架构荟萃”关注我们&#xff0c;输入1024&#xff0c;你懂的 环境准备 启动 Eureka 启动 ConfigServer 启动 aiportal-wsm-service 微服务 Gitlab 配置文件&#xff1a;aiportal-wsm-service、globa、,dbconfig 等yml文件 配置解析入口 在启动 aiportal-wsm-s…

中望CAD的引线标注格式怎么改_大神总结的CAD设计五个段位 快来看看你在哪个阶段...

看到段位&#xff0c;大家可能第一时间会想到时下风靡的各种游戏。但事实上&#xff0c;尽管没有绝对数值&#xff0c;大多数行业都会有其隐性的段位&#xff0c;能让人初步判断自己所处的阶段&#xff0c;我们CAD设计也不例外。今天&#xff0c;不妨分享一位大神总结的CAD设计…

datetime 比较_Python常用标准库之datetime模块

一、概述之前我们整理了time模块的日常用法&#xff0c;处理时间数据的过程中还有一个比较常用的模块就是datetime模块&#xff0c;其应用更为广泛&#xff0c;用于处理日期和时间的类。对于基本的时间表示方法、时间戳、UTC等概念请参考之前的文章&#xff1a;Python常用标准库…

使用 Eureka 简单实现服务健康监控日志分析

1 背景 当我们用 K8s Docker 容器化部署基于 SpringCloud 微服务时&#xff0c;根据实际业务需要&#xff0c;可能会对某些服务采取多节点实例部署&#xff0c;这样可以实现服务的负载均衡及高可用架构。但我们有时为了监控服务的稳定性&#xff0c;除了 K8s 平台提供的控制台…

python 字符串排序_如何在一场面试中展现你对Python的coding能力?

如果你已经通过了招聘人员的电话面试&#xff0c;那么下面正是该展现你代码能力的时候了。无论是练习&#xff0c;作业&#xff0c;还是现场白板面试&#xff0c;这都是你证明自己的代码技巧的时刻。我们知道面试官常常会出一些题让你来解决&#xff0c;作为一名程序员&#xf…