uniapp 画布
1.前言
uniapp中的canvas与HTML中的canvas用法并不同,他的使用文档请参考微信小程序画布
2.基本使用
- 1.准备canvas容器,并为其设置canvas-id和宽高(为了兼容H5,最好把id也一并设置)
<canvas id="canvas" canvas-id="canvas" style="width: 384px; height: 150px;"></canvas>
- 2.获取绘图工具(传入canvas-id)
var ctx = uni.createCanvasContext('canvas')
- 3.设置样式并进行绘制
ctx.setFontSize(20)
ctx.fillText('你好,世界', 50, 50)
ctx.draw(true) //不传true的话会清空之前的绘制操作

3.绘制文字
- 文字绘制分2种:填充文字和描边文字
- 另外绘制前还需要设置文字的样式
旧API:在设置样式时,旧API通过调用方法传参来实现
var ctx = uni.createCanvasContext('canvas')
ctx.setFillStyle('red') //设置填充色
ctx.setStrokeStyle('blue') //设置描边颜色(边框)
ctx.setFontSize(20) //设置字体大小 字体的字号
ctx.setTextAlign('left') //设置文字对其方式 left/center/right
ctx.fillText('填充文字', 50, 50) //绘制填充文字
ctx.strokeText('描边文字', 50, 100) //绘制描边文字
ctx.draw() //绘制到画布中
新API:在设置样式时,旧API通过给属性赋值来实现,语法与HTML中的canvas一致
var ctx = uni.createCanvasContext('canvas')
ctx.fillStyle = 'red' //设置填充色
ctx.strokStyle = 'blue' //设置描边颜色(边框)
ctx.font = '20px' //设置字体大小 默认值为 10px sans-serif
ctx.setTextAlign('left') //设置文字对其方式 left/center/right
ctx.fillText('填充文字', 50, 50) //绘制填充文字
ctx.strokeText('描边文字', 50, 100) //绘制描边文字
ctx.draw() //绘制到画布中

4.渲染图片
支持base64位的图片格式
ctx.drawImage(base64_img,x0,y0)
ctx.draw(true)
5.渲染直线
- 设置直线宽度和颜色
- 设置起点和终点
- 开启绘制
ctx.setStrokeStyle('green')
ctx.setLineWidth(data[i].lineWidth) //设置直线宽度
ctx.moveTo(0, 50)
ctx.lineTo(200, 50)
ctx.stroke()
ctx.draw(true)
uniapp 画布的更多相关文章
- uni-app使用Canvas绘图
最近公司项目在用uni-app做小程序商城,其中商品和个人需要生成图片海报,经过摸索记录后将一些重点记录下来.这里有两种方式来生成 1.后台控制生成 2.前端用canvas合成图片 这里我们只讲使用c ...
- uni-app通过canvas实现手写签名
分享一个uni-app实现手写签名的方法 具体代码如下: <template> <view > <view class="title">请在下面 ...
- 微信公众号生成海报(uniapp)
前言 这几天接到一个需求,要在公众号内生成分享海报.之前有做过H5和小程序的,心想直接复制过来就行了.没想到踩了不少的坑,搞了好几天终于搞好了,特此分享一下,希望能对大家有所帮助. 效果图 代码实现 ...
- 06. Web大前端时代之:HTML5+CSS3入门系列~HTML5 画布
Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 我们先看看画布的魅力: 初始画布 canvas默认是宽3 ...
- 如何快速清除ZBrush画布中多余图像
ZBrush是一款数字雕刻与绘画软件,它以强大的功能和直观的工作流程彻底改变了整个三维行业.它的简洁化.智能化和人性化的设计无不让众多用户所折服.刚接触它的用户可能会因为找不到相关命令或不熟悉而觉得它 ...
- 矢量图绘制工具Svg-edit调整画布的大小
矢量图绘制工具Svg-edit调整画布的大小 ------------------------------ ------------------------
- HTML5 中的 canvas 画布(一)
---恢复内容开始--- 在HTML5中新添加的元素,canvas 现在支持 IE9+的版本 注意:HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript ...
- html 5 canvas画布整理
1. 创建canvas画布<canvas id="myCanvas" width="800" height="800" >< ...
- Quartz 2D在ios中的使用简述二:创建画布
在iOS中使用Quartz画图时,第一步就是要获取画布(图形上下文),然后再画布上做各种操作.先看下CoreGraphics.h这个头文件,就可以知道能够创建多少种上下文类型. #include &l ...
- HTML5 Canvas 画布
一.Canvas是什么? canvas,是一个画布,canvas元素用于在网页上绘制图形. canvas 拥有多种绘制路径.矩形.圆形.字符以及添加图像的方法. 二.创建Canvas元素 加上基本的属 ...
随机推荐
- HTML & CSS – Styling Scrollbar
前言 Scrollbar 能 styling 的东西不多 (尤其是 IOS 基本上只能 display:none 而已),但有时候我们不得不 styling. 这里记入我自己在项目中修改过的 scro ...
- SQL Server – History Table (Audit/Archive Table)
前言 续上一篇的 Soft Delete 后, 我们继续来看看 History Table (Audit/Archive Table). Archive Table 市场上有了这样叫, 但我觉得它比较 ...
- 30. 串联所有单词的子串 Golang实现
题目描述: 给定一个字符串 s 和一个字符串数组 words. words 中所有字符串 长度相同 . s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串. 例如, ...
- [OI] 可持久化数据结构
学了一年 OI 才看懂这句话: \(\log n\) 是以什么为底的? 其实没什么区别 因为我们自动忽略常数,因此 \(\log_{a}n=\frac{\log_{x}n}{\log_{x}a}=\l ...
- Java中浮点数运算存在的精度问题以及解决方法
观察以下一段代码,相信小朋友都可以一眼看出答案,但是计算机给出的答案是这样吗? public class TestDouble { public static void main(String arg ...
- 【赵渝强老师】Oracle RAC集群的概念
一.什么是Oracle RAC(Real Application Cluster)? Oracle RAC 是一个具有共享缓存架构的集群数据库,它克服了传统的无共享方法和共享磁盘方法的限制,为您的所有 ...
- Android Qcom USB Driver学习(六)
眼图基础知识与详解 10分钟教会你看眼图 USB2.0 HUB眼图调试经验总结 一篇文章教你如何全面了解眼图测试! 预加重与去加重对眼图的影响 关于 USB 通信阻抗匹配的问题 硬件调试--眼图几个经 ...
- centos7安装python3.12
centos7 安装升级 python3.12 centos7 默认的 gcc 和 g++ 版本都很低,在有 --enable-optimizations 选项时会编译报错,因此要在 scl 环境下编 ...
- node.js安装及环境配置基于Windows系统
node.js安装及环境配置-Windows系统 1. 下载安装包 https://nodejs.org/zh-cn/download/ 根据自己电脑系统及位数选择,我的电脑是Windows系统.64 ...
- iptables防火墙规则介绍与配置
防火墙简单介绍 防火墙根据什么对外网的进出数据流进行控制? 源IP.目标IP.源端口号.目标端口号.协议.指针位(SYN.FIN.ACK.RST).状态(NEW.ESTABLISHED.INVIAD) ...