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 画布的更多相关文章

  1. uni-app使用Canvas绘图

    最近公司项目在用uni-app做小程序商城,其中商品和个人需要生成图片海报,经过摸索记录后将一些重点记录下来.这里有两种方式来生成 1.后台控制生成 2.前端用canvas合成图片 这里我们只讲使用c ...

  2. uni-app通过canvas实现手写签名

    分享一个uni-app实现手写签名的方法 具体代码如下: <template> <view > <view class="title">请在下面 ...

  3. 微信公众号生成海报(uniapp)

    前言 这几天接到一个需求,要在公众号内生成分享海报.之前有做过H5和小程序的,心想直接复制过来就行了.没想到踩了不少的坑,搞了好几天终于搞好了,特此分享一下,希望能对大家有所帮助. 效果图 代码实现 ...

  4. 06. Web大前端时代之:HTML5+CSS3入门系列~HTML5 画布

    Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 我们先看看画布的魅力: 初始画布 canvas默认是宽3 ...

  5. 如何快速清除ZBrush画布中多余图像

    ZBrush是一款数字雕刻与绘画软件,它以强大的功能和直观的工作流程彻底改变了整个三维行业.它的简洁化.智能化和人性化的设计无不让众多用户所折服.刚接触它的用户可能会因为找不到相关命令或不熟悉而觉得它 ...

  6. 矢量图绘制工具Svg-edit调整画布的大小

    矢量图绘制工具Svg-edit调整画布的大小 ------------------------------ ------------------------

  7. HTML5 中的 canvas 画布(一)

    ---恢复内容开始--- 在HTML5中新添加的元素,canvas 现在支持 IE9+的版本 注意:HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript ...

  8. html 5 canvas画布整理

    1. 创建canvas画布<canvas id="myCanvas" width="800" height="800" >< ...

  9. Quartz 2D在ios中的使用简述二:创建画布

    在iOS中使用Quartz画图时,第一步就是要获取画布(图形上下文),然后再画布上做各种操作.先看下CoreGraphics.h这个头文件,就可以知道能够创建多少种上下文类型. #include &l ...

  10. HTML5 Canvas 画布

    一.Canvas是什么? canvas,是一个画布,canvas元素用于在网页上绘制图形. canvas 拥有多种绘制路径.矩形.圆形.字符以及添加图像的方法. 二.创建Canvas元素 加上基本的属 ...

随机推荐

  1. 安全 – 常见 Web 攻击

    前言 最近在研究 WAF, 顺便记入一下常见的 Web 攻击. SQL Injection SQL injection 是指程序员直接拿 client input, 拼接到 SQL query 中. ...

  2. 音视频入门-7-ffmpeg小实验-v4l2 ubuntu 获取摄像头图像并进行格式转换

    1. Linux内我们使用V4L2框架获取摄像头数据,由于摄像头的不同,摄像头所输出的数据格式各有不同.    考虑到YUV420P 的格式使用最广泛,我们最终将摄像头数据转为该格式. pic_dat ...

  3. ModbusRTU通信协议报文剖析

    前言 大家好!我是付工.前面给大家介绍了Modbus协议的应用层面.终于有人把Modbus说明白了那么,今天跟大家聊聊关于Modbus协议报文的那些事. 一.真实案例 前段时间有个粉丝朋友,让我帮他解 ...

  4. 一些rand()的测试

    rand()生成的伪随机数已经足够我们实用,为了跟好的理解rand()跟seed的关系,做了一些测试! rand()函数种子默认为1,在每一次程序运行中,随机数相同,在一次运行中,可将生成数看做随机 ...

  5. opengl在编译的过程中,glad使用

    我在编译的过程中,遇到:无法找到 -lglad这个错误.最后才发现对于glad的使用不能用-lglad.因为我们通过glad的在线服务可以得到一些文件,其中glad.c文件我们是需要放在我们的项目下面 ...

  6. kotlin更多语言结构——>注解

    注解声明 注解是将元数据附加到代码的方法.要声明注解,请将 annotation 修饰符放在类的前面 annotation class Fancy 注解的附加属性可以通过用元注解标注注解类来指定 - ...

  7. 云原生周刊:Terraform 1.8 发布 | 2024.5.6

    开源项目推荐 xlskubectl 用于控制 Kubernetes 集群的电子表格.xlskubectl 将 Google Spreadsheet 与 Kubernetes 集成.你可以通过用于跟踪费 ...

  8. 欢迎体验程序员Lingma的助攻手

    如果你是一位软件开发者,(同义灵码)Lingma可以帮助你做基础架构的脚手架相关工作事宜以及部分代码开发,对比之前没有灵码,现在提效了她可以给予你零编码的快感,准确快速地读懂了你我的需求,例如答问场景 ...

  9. 没想到,Python 还可以制作 Web 可视化页面!

    一谈到Web页面,可能大家首先想到就是HTML,CSS或JavaScript. 本次小F就给大家介绍一下如何用Python制作一个数据可视化网页,使用到的是Streamlit库. 轻松的将一个Exce ...

  10. 【VMware VCF】使用 PowerShell 脚本管理 SDDC Manager 中的软件包。

    SDDC Manager 中有两种类型的软件包,分别是"升级/修补包(PATCH)"和"安装包(INSTALL)"."升级/修补包"用于执行 ...