Autodesk Forge Viewer getScreenshot 方法

Posted

技术标签:

【中文标题】Autodesk Forge Viewer getScreenshot 方法【英文标题】:Autodesk Forge Viewer getScreenshot methode 【发布时间】:2021-05-13 03:27:49 【问题描述】:

我试图从我的伪造查看器生成一个具有明确宽度和高度的屏幕截图。 我正在使用这种方法:

this.viewer.getScreenShot(
            this.width,
            this.height,
            img => this.createPDF(img));
    

如果我的高度值是整个画布高度,我可以计算一个宽度值以适应特定的纵横比,例如 1:2。 如果我想计算我的高度值以匹配 16:9 之类的东西,无论我的 this.height 值是多少,我总是得到完整的画布高度,并且我的屏幕截图宽度将更改为匹配 16:9 纵横比的值。我不知道我是否遗漏了什么或做错了什么,或者这是伪造查看器实现的一个功能。由于这种行为,我不可能仅从我的画布上制作 16:9 的屏幕截图,仅此而已。我的实际目标是将帧渲染到我的查看器画布中以查看纵横比并在多个之间切换。我能够根据比率和 clientToWorld 坐标渲染此帧,但我的屏幕截图只是扩展到全高尺寸。也许你们知道这个问题的解决方案。 谢谢,JT

【问题讨论】:

【参考方案1】:

您是否尝试将图像crop 调整为特定的纵横比?还是延伸到那个程度?

getScreenShot() 的作用类似于创建具有给定尺寸的 Viewer 并对其进行快照。因此,您不仅限于当前的 Viewer 尺寸,甚至可以创建比用户当前看到的图像质量更高的图像。 例如。无论 Viewer 大小如何,我都可以创建 1600x900px png。

如果您没有为 blob 传入 第三个参数,则生成的图像只会在另一个浏览器选项卡中弹出。您可以通过 NOP_VIEWER 在任何使用 Viewer 的网站上的 Browser Console 中进行测试。这样做:

NOP_VIEWER.getScreenShot(1600, 900); 

【讨论】:

嗨,亚当,非常感谢您的帮助。我尝试使用 NOP_viewer 方法来弄清楚我的问题到底是什么。在 2D 查看器上,我可以创建不同大小的图像,但无论我为第二个值输入哪个数字,我总是会根据关系获得查看器的完整高度。 如果我正确理解您的要求,那么这应该会有所帮助:forge.autodesk.com/blog/more-screenshots 太好了!这就是我一直在寻找的。谢谢,JT

以上是关于Autodesk Forge Viewer getScreenshot 方法的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Forge Viewer 中激活“Autodesk.MemoryLimited”扩展?

在 Autodesk Forge Viewer 中显示尺寸

Autodesk Forge Viewer 适合查看纵向/横向

如何克服 Autodesk Forge Viewer 中的窗口选择限制?

Autodesk Forge Viewer getScreenshot 方法

如何在对象上调整大小 - Autodesk Forge Viewer