如何确定cytoscape.js png输出的最大比例?

时间:2015-09-21 18:15:34

标签: cytoscape.js

我希望用户能够从他们的cytoscape.js图表​​中生成高质量的图像以供发布(事实上,这是我的应用程序的主要用例)。由于没有从cytoscape.js导出到矢量格式,我的文档告诉用户在导出到png之前只需缩放到高分辨率,然后我的代码将当前缩放级别作为缩放参数传递给cy.png(),以及full:true。但是,在足够高的比例值下,不会生成图像。对于不同的图形,这个最大比例值似乎是不同的,所以我假设它基于一些最大的物理尺寸。如何确定任何给定图表的最大比例值,以便我的代码不会超过它?

此外,如果我删除或移动元素使得图形占用的物理空间比以前少,则cy.png()似乎在结果图像中包含该空白区域,即使它不再包含任何元素 - - 有什么办法可以避免吗?

1 个答案:

答案 0 :(得分:2)

默认情况下,cy.png()cy.jpg()会将当前视口导出到图像。要导出拟合图表,请使用cy.png({ full: true })cy.jpg({ full: true })

浏览器强制执行导出的整体文件大小限制。这取决于操作系统和浏览器供应商。 Cytoscape.js不能影响也不能计算这个限制。对于大分辨率/ scale s,PNG和JPG之间的质量差异可以忽略不计。因此,JPG往往是大型出口的更好选择。

除此之外:虽然位图格式随分辨率而缩放,但像(SVG)这样的矢量格式会随着图形元素的数量而缩放。对于大型图形,可能无法导出SVG(即使已实现此类功能)。