let that = this
let ctx = uni.createCanvasContext('firstCanvas')
//uni.upx2px()是尺寸单位转换方法,622为rpx单位,换成px为311,根据设计稿来编辑
let canvaWidth = uni.upx2px(622)
let canvaHight = uni.upx2px(984)
const data = await this.getcanvasHW()
if (data) {
canvaWidth = data.width
canvaHight = data.height
}
//绘制文字居中对齐使用,根据我的理解,这个数值是要为需要截图区域宽度的一半
let centerCode = canvaWidth / 2
let font = uni.upx2px(24) //字体大小
let yzmtop = canvaHight * 0.8
let yzmleft = uni.upx2px(232)
let imgurl = this.imgUrl //设置背景图的路径
ctx.drawImage(imgurl, 0, 0, canvaWidth, canvaHight)
//绘制您的邀请码文字
ctx.setFillStyle('#FFFFFF') //文字颜色
ctx.setFontSize(font)
ctx.textAlign = "center" //居中,而且这个需要放在ctx.setFontSize()后面,其他api就没去一一使用过
//绘制文字ctx.fillText(需要绘制的文字,x轴距离,y轴距离);
ctx.fillText(this.user, centerCode, yzmtop);
//绘制二维码位置
let erweimaimg = this.qrcodeImg
let towCodeX = canvaWidth / 2 - uni.upx2px(100)
let towCodeY = canvaHight * 0.8 - uni.upx2px(200 + 30)
let towCodeW = uni.upx2px(200)
ctx.drawImage(erweimaimg, towCodeX, towCodeY, towCodeW, towCodeW)
ctx.draw() //结束绘画
- 发布:2021-01-13 14:16
- 更新:2021-01-20 00:47
- 阅读:806
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 10
HBuilderX类型: 正式
HBuilderX版本号: 3.0.5
手机系统: Android
手机系统版本号: Android 9.0
手机厂商: vivo
手机机型: V1809A
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
随便新建一个页面,创建一个canvas 测试即可。分别在H5 和 安卓中测试即可显现出来。
随便新建一个页面,创建一个canvas 测试即可。分别在H5 和 安卓中测试即可显现出来。
预期结果:
随便新建一个页面,创建一个canvas 测试即可。分别在H5 和 安卓中测试即可显现出来。
随便新建一个页面,创建一个canvas 测试即可。分别在H5 和 安卓中测试即可显现出来。
实际结果:
随便新建一个页面,创建一个canvas 测试即可。分别在H5 和 安卓中测试即可显现出来。
随便新建一个页面,创建一个canvas 测试即可。分别在H5 和 安卓中测试即可显现出来。
2***@qq.com (作者)
已确认,2.98版本,正常。。但我的版本,回退不了那么多。如果下载新的,,很多项目的配置就会丢失。还望处理该BUG
2021-01-15 10:22