Skip to content
New issue

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

同页面多张海报时,widthPixels重新计算宽高bug #57

Open
walkerliu01 opened this issue Oct 29, 2021 · 2 comments
Open

同页面多张海报时,widthPixels重新计算宽高bug #57

walkerliu01 opened this issue Oct 29, 2021 · 2 comments
Labels
bug Something isn't working

Comments

@walkerliu01
Copy link

你好,请使用下面的模板创建 issue 以帮助我们更快的排查问题,不规范的 issue 会被关闭,感谢配合。

Browser version [浏览器类型和版本]
chrome 最新版

vue-canvas-poster version [vue_canvas_poster 版本]
1.2.1

Vue version [Vue 版本]
2.6.1

reappear link [重现链接]

One-line summary [描述问题]
场景: 页面上同时需要生成三张海报, 海报背景宽高微 1080px 1920px , 但是由于某些场景问题 需要根据 组件的widthPixels属性去动态的调整海报生成的宽高,我看源码会在字符串原型链上的.toPx()方法 去计算缩放比例, 重设宽高 只有一张海报的时候后没问题, 但是三张海报的时候,由于 重置setStringPrototype(1) 是最开始的时候执行, 但是在异步任务里执行的, 会导致在promise.then中, 没有重置scale缩放比例, 这时候使用.toPx()方法会沿用上一次的缩放 导致 比如三张海报都需要计算scale, 实际结果是 第一张没问题, 第二张延用了上一个的宽度缩放,但是高度没缩放,同时重置了 setStringPrototype(1) 缩放比, 第三张又没问题, 依次类推 第偶数张的海报 宽度缩了, 但高度没缩

Other comments [其他信息]

@walkerliu01 walkerliu01 added the bug Something isn't working label Oct 29, 2021
@walkerliu01
Copy link
Author

解决方式:
在源码this.canvasWidthInPx = width.toPx() 之前加上 setStringPrototype(1);

@zzq0826
Copy link

zzq0826 commented Mar 7, 2022

Browser version [浏览器类型和版本]
chrome 最新版

vue-canvas-poster version [vue_canvas_poster 版本]
1.2.1

Vue version [Vue 版本]
2.6.1

reappear link [重现链接]

One-line summary [描述问题]
只有一张图片的时候,频繁生成图片的话,会有几率出现异常。
宽度是[widthPixels]的值,高度反而是[painting]的height

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants