We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
问题描述
ctx.translate(100, 100)
new Image()
canvas.createImage()
onload
uni-app
复现步骤
<template> <view> <canvas type="2d" id="my-canvas" canvas-id="my-canvas" style="border: 1px solid #000;" /> </view> </template> <script> export default { mounted () { uni.createSelectorQuery().in(this).select('#my-canvas').fields({ node: true, size: true }).exec((res) => { // #ifdef H5 // H5 环境下手动获取 canvas 节点 res[0].node = document.querySelector('#my-canvas canvas') // #endif const canvas = res[0].node // 获取canvas上下文 const ctx = canvas.getContext('2d') // 设置原点坐标为(100, 100) ctx.translate(100, 100) // 正常的原点坐标是(100, 100), 这里用红色来标记 this.drawPoint(ctx, 20, 'red') // ----------- 下面开始复现bug ---------------------------- let img // H5 环境下才能使用 new Image() // #ifdef H5 img = new Image() // #endif // 小程序环境下使用 canvas.createImage // #ifdef MP img = canvas.createImage() // #endif img.onload = () => { /** * 绘制一个蓝色的点, 此时 H5 环境下会出现 bug * H5 环境下的原点坐标被重置了 * 但是小程序环境下的原点坐标没变, 才是正常的 */ this.drawPoint(ctx, 10, 'blue') } // 随便找了个图片 img.src = 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-uni-app-doc/d8590190-4f28-11eb-b680-7980c8a877b8.png' }) }, methods: { // 基于 canvas 的原点坐标绘制一个点 drawPoint (ctx, radius, color) { ctx.beginPath() ctx.fillStyle = color ctx.arc(0, 0, radius, 0, 7) ctx.fill() ctx.closePath() } } } </script>
预期结果
正常的渲染效果应该是两个点重合, 就像是小程序里面的渲染效果一样
实际结果
系统信息:
npm run info
补充信息
无
The text was updated successfully, but these errors were encountered:
你好, 我问一下, github上面反馈的问题有人看吗
Sorry, something went wrong.
收到,等待排查
问题已确认,后续修复
fix: canvas 触发 resize 导致延迟绘图时canvas变化 fixed #2847
b380db2
方便问一下这个问题将会在哪个版本修复啊
下一个alpha应该会带上的
StrivingRabbit
No branches or pull requests
问题描述
ctx.translate(100, 100)
设置原点坐标为(100, 100), 并绘制了一个红色的点new Image()
加载图片, 小程序环境下使用canvas.createImage()
加载图片onload
加载成功之后, 基于原点绘制了一个蓝色的点uni-app
编译的H5环境下, 原点坐标被意外的重置了复现步骤
预期结果
正常的渲染效果应该是两个点重合, 就像是小程序里面的渲染效果一样
实际结果
系统信息:
npm run info
的运行结果]补充信息
无
The text was updated successfully, but these errors were encountered: