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. 【JS设计模式笔记】-观察者模式(即发布-订阅模式)(结构型)

    发布-订阅模式的作用 比如常见的发送短信就是一个典型的发布-订阅模式,例如,小明.小红去售楼处购买房子,但是售楼处的工作人员告诉小明.小红当前楼盘已经售罄,新楼盘还没有开售,这个时候,小明.小红把自己 ...

  2. ASP.NET Core – MVC

    前言 在 ASP.NET Core – MVC vs Razor Page 里有提到 MVC. 它算是 WebAPI 的抽象. 但是通常 MVC 指的是比较传统的 Website, WebAPI 则是 ...

  3. 人脸识别 face detect & recognize

    前言 最近有一个项目要升级. 它是一个在线教育的 web app. 由于学生年龄小, 不适合用 username/password 这种方式做登入. 所以项目开始之初是使用 RFID 来登入的. 但由 ...

  4. 大一下的acm生活

    在一个名气不大的211学校刷题的日常. 感觉这些算法题好难啊! 最近有好多实验室要招新,不知道该怎么办,自己只想就业,并不想升学,好烦! 真枯燥,好无聊. 现在要学习相关的网页设计和网站建设,例如配色 ...

  5. C# 裁剪PDF页面

    在处理PDF文档时,有时需要精确地裁剪页面以适应特定需求,比如去除广告.背景信息或者仅仅是为了简化文档内容.本文将介绍如何使用免费.NET控件通过C#实现裁剪PDF页面. 免费库 Free Spire ...

  6. 基于RHEL 9 搭建 KVM 虚拟化环境

    一.准备工作 1. 检查硬件虚拟化支持 KVM 要求处理器支持硬件虚拟化技术:Intel VT-x(虚拟化技术扩展)或 AMD-V(虚拟化技术扩展). 检查方法: 使用以下命令检查 CPU 是否支持虚 ...

  7. [OI] 珂朵莉树

    对于一个序列,它有较多重复元素,并且题目需要维护区间修改,维护区间信息,维护整块值域信息的,那么就可以考虑珂朵莉树解决. 主要思想 珂朵莉树将全部相同的颜色块压缩为一组,如对于下述序列: 1 1 1 ...

  8. Electron.Net + Linux + Blazor 初尝备忘录

    Electron 是使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序的一个框架, Electron.NET 是.net 下对 Electron 的封装实现, 通过它可以比较容 ...

  9. 封装 axios 拦截器

    import axios from "axios"; // 自定义一个 request 实例 const request = axios.create({ baseURL: &qu ...

  10. webpack 的优点

    1. 社区庞大,活跃,紧跟技术的前言,不断发展迭代 : 2. 专注处理模块化的项目,可以开箱即用 : 3. 通过 loader 扩展,可以把所有类型的文件解析打包 : 4. 通过plugin 扩展 , ...