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. Nuxt Kit 中的页面和路由管理

    title: Nuxt Kit 中的页面和路由管理 date: 2024/9/17 updated: 2024/9/17 author: cmdragon excerpt: 摘要:本文介绍了Nuxt ...

  2. Maven高级——多环境配置与应用

    多环境配置与应用 开发步骤 定义多环境 <!--配置多环境--> <profiles> <!--开发环境--> <profile> <id> ...

  3. 2022年9月中国数据库排行榜:榜眼、探花纷纷易主,AnalyticDB蝉联榜单十强

    夏去秋来清风至,榜首前三起涟漪. 2022年9月的 墨天轮中国数据库流行度排行榜火热出炉,相比上月新增两个数据库, 本月榜单前十名可以用一句话概括为:OceanBase新版发布先声夺人,达梦低调做事暂 ...

  4. Solon 3.0 新特性:SqlUtils

    Solon 3.0 引入了新的 SqlUtils 用于数据库基础操作,SqlUtils 是对 JDBC 较为原始的封装,采用了 Utils API 的风格,极为反普归真. 特性有: 支持事务管理 支持 ...

  5. 泛型dotnet

    // 什么是泛型List<T> T:表示类型参数,指代任意类型 T可以是任意标识 // 编写代码时使用特殊符号替代位置类型,在实例化或使用/调用时才会进行具体类型的定义 // 特点:重用代 ...

  6. 后台管理系统的setting.js

    // 修改了此处要重新启动 module.exports = { // 网页的标题 title: "人力资源系统", /** * @type {boolean} true | fa ...

  7. [Vue warn]: Error in v-on handler (Promise/async): "TypeError: Object(...) is not a function"

    引用外部发文件时候,只是部分引用,所以原本是解构方式引用的,我忘记加{ }了

  8. kotlin集合——>迭代器、区间与数列

    1.迭代器 对于遍历集合元素,Kotlin 标准库支持 迭代器 的常用机制⸺对象可按顺序提供对元素的访问权限,而 不会暴露集合的底层结构.当需要逐个处理集合的所有元素(例如打印值或对其进行类似更新)时 ...

  9. 最详细CentOS7.6安装openGauss5.0.3教程

    一.环境准备 1.1 主机信息 项目 内容 操作系统 CentOS7.6 IP 192.168.4.201 主机名 opgs201 CPU 8core 内存 16GB 磁盘1 100GB 1.2 操作 ...

  10. 安装完Oracle数据库后需要调整的参数

    关闭审计 alter system set audit_trail = none scope=spfile; 180天密码过期 alter profile default limit PASSWORD ...