当前位置:网站首页 > 微服务架构 > 正文

微信的新版canvas绘制的图案发生变形和偏移的问题

一,现象

this.context.beginPath(); this.context.moveTo(10, 10); this.context.lineTo(10, 100); this.context.lineTo(100, 100); this.context.lineTo(100, 10); this.context.lineTo(10, 10); this.context.stroke(); 

本来绘制的是正方形,结果绘制出来是个矩形,边的宽度也不一样
请添加图片描述

二,原因

画布初始的宽度是300150,如果不是这个值的话,绘制的内容会被拉伸.(想象着300150画布上的内容被拉伸)

三,解决方案

微信提供了这种问题的解决方案,代码如下:

const query = wx.createSelectorQuery() query.select('#myCanvas').fields({ 
    node: true, size: true }).exec((res) => { 
    const canvas = res[0].node const ctx = canvas.getContext('2d') const dpr = wx.getSystemInfoSync().pixelRatio canvas.width = res[0].width * dpr canvas.height = res[0].height * dpr ctx.scale(dpr, dpr) ctx.beginPath(); ctx.moveTo(10, 10) ctx.lineTo(10, 100) ctx.lineTo(100, 100) ctx.lineTo(100, 10) ctx.lineTo(10, 10) ctx.stroke() }) } 

实现的效果:
请添加图片描述

到此这篇微信的新版canvas绘制的图案发生变形和偏移的问题的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • jconsole远程连接centos7 服务器上的tomcat来查看服务器状况(无密码版)2024-12-01 07:27:10
  • jconsole远程连接centos7 服务器上的tomcat来查看服务器状况(有密码版)2024-12-01 07:27:10
  • centos安装邮件服务2024-12-01 07:27:10
  • centos7安装vsftpd(FTP服务)2024-12-01 07:27:10
  • 便宜服务器租用一般多少钱一年2024-12-01 07:27:10
  • 《第一行代码》 第十章:服务2024-12-01 07:27:10
  • unicloud生成微信小程序分享码2024-12-01 07:27:10
  • 时间排序处理在微信小程序和真机调试没问题,发布体验版后未执行2024-12-01 07:27:10
  • 微信小程序跳转微信小程序实现免登录2024-12-01 07:27:10
  • 微信小程序跳转微信小程序的实现2024-12-01 07:27:10
  • 全屏图片