有用过zRender的吗,用过canvas也行

发布于 2022-09-07 22:58:28 字数 570 浏览 30 评论 0

背景:
1.画布宽高300,里面有一个宽400,高为100的红色矩形,右侧超出画布100,点击下载,调用toDataURL方法,拿到的是被截断的300x100的红色矩形。想要下载完整的400x100的红色矩形!!!*
图片描述

个人思路:拿到红色矩形的真实宽高,new一个新的canvas,宽高等于它,然后再拿到这个红色矩形实例,画到新canvas上,调用toDataURL
问题1:canvas有函数能拿到画布中真实内容的宽高吗?
问题2:canvas有函数能拿到画布中真实内容的实例吗?(感觉拿到这个应该就会拿到上面宽高)
同理:
这个是用zRender画出来的,zRender有哪个暴露的方法可以拿到么

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

紫竹語嫣☆ 2022-09-14 22:58:28

new一个新的canvas代价太大了,最后改成在原canvas上改变画布宽度以及偏移量实现。
这种实现方式缺点:点击下载时用户会看到一瞬间画布增大以及画布中的内容移动。

思路:

  • 1.保留下载前的画布widthheightscaleposition
  • 2.将画布的宽高设置为真实内容的宽高。
  • 3.调整偏移量,使真实内容完全显示在画布中。
  • 4.调用toDataURL方法下载。
  • 5.将画布恢复到之前的状态。

图片描述

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文