JavaScript is required

图谱内容生成图片

导出全内容截图图像

功能概述

此示例演示了如何将整个图可视化为图像导出,而不管当前的缩放级别或视口位置如何。导出以全分辨率捕获完整的图内容,使其非常适合创建高质量的文档、演示文稿或共享可视化。该演示将"下载图像"按钮集成到工具栏中,并展示如何正确处理导出工作流程。

核心特性实现

图像导出 API

核心导出功能使用 prepareForImageGeneration 方法:

const downloadImage = async () => {
    const canvasDom = await graphInstance.prepareForImageGeneration();
    const imageBlob = await domToImageByModernScreenshot(canvasDom, {
        backgroundColor: '#ffffff'
    });
    if (imageBlob) {
        downloadBlob(imageBlob, 'my-image-name');
    }
    await graphInstance.restoreAfterImageGeneration();
};

该过程涉及三个步骤:准备画布、捕获图像和恢复图状态。

自定义工具栏按钮

下载按钮添加到迷你工具栏:

<RGMiniToolBar positionV='bottom' direction='v'>
    <div
        className="w-8 h-8 border rounded flex place-items-center justify-center bg-red-700 animate-pulse text-white cursor-pointer hover:text-yellow-200 hover:animate-none"
        onClick={downloadImage}
    >
        <ImageIcon size={20} />
    </div>
</RGMiniToolBar>

按钮使用脉动动画以吸引对导出功能的注意。

背景颜色配置

图像导出包括白色背景以获得更好的可见性:

const imageBlob = await domToImageByModernScreenshot(canvasDom, {
    backgroundColor: '#ffffff'
});

这确保导出的图像无论原始图背景如何都看起来不错。

导出期间的状态管理

该演示在导出后正确处理状态恢复:

await graphInstance.restoreAfterImageGeneration();

这对于在图像生成所做的临时修改后保持图的交互状态至关重要。

与第三方截图库集成

该演示使用 modern-screenshot 进行实际图像捕获:

import { domToImageByModernScreenshot, downloadBlob } from '../simples-common-components/domToImageByModernScreenshot';

Relation-graph 提供准备好的 DOM 元素,但可以使用任何截图库。

创意使用场景

文档生成

自动生成始终显示完整图的文档图像。对于需要最新可视化的 API 文档、技术报告或系统架构文档很有用。

演示幻灯片

创建带有图可视化的演示幻灯片。导出确保高分辨率图像,在投影或打印时看起来很专业,无论图如何被查看。

社交媒体共享

使用户能够在社交媒体上共享有趣的图可视化。导出创建适合 Twitter、LinkedIn 或其他平台的清晰、完整的图像。

自动报告生成

集成到定期生成带有嵌入式图可视化的状态报告的自动报告系统中。导出可以按计划触发。

图比较和版本控制

在不同时间点导出图以创建演化的视觉记录。对于在演示文稿或存档中显示增长、变化或比较很有用。

打印和发布

创建用于出版、海报或物理报告的打印就绪的图图像。导出以全分辨率捕获所有内容,确保打印时的质量。

协作审查

导出图以包含在设计审查、利益相关者演示或客户交付物中。一致的图像格式确保每个人都看到相同的可视化。