JavaScript is required

生成包背景的图片

生成透明背景的图谱图片

本示例演示如何生成具有透明背景的图谱截图。使用 prepareForImageGenerationrestoreAfterImageGeneration 方法,图谱会自动准备图像捕获并在之后恢复其状态。生成的图片可用作其他应用程序或文档中的叠加层,其中需要透明度。

关键特性包括:使用专用图谱实例方法的准备和恢复模式、使用 backgroundColor: null 的透明背景配置、使用 levelGaps 数组的宽水平间距树状布局。该示例演示了文档和网站的叠加和合成、图标和贴纸的设计资源创建,以及 PNG 和 SVG 集成的多格式导出。

生成透明背景的图谱图片

功能概述

本示例演示如何生成具有透明背景的图谱截图。使用 prepareForImageGenerationrestoreAfterImageGeneration 方法,图谱会自动准备图像捕获并在之后恢复其状态。生成的图片可用作其他应用程序或文档中的叠加层,其中需要透明度。

核心特性实现

准备和恢复模式

图谱实例为图像生成工作流提供专用方法:

const generateImageBase64 = async () => {
    // 准备图谱以生成图像
    const canvasDom = await graphInstance.prepareForImageGeneration();

    // 生成具有透明背景的图像
    const imageBlob = await domToImageByModernScreenshot(canvasDom, {
        backgroundColor: null // null = 透明
    });

    // 生成后恢复图谱状态
    await graphInstance.restoreAfterImageGeneration();

    if (imageBlob) {
        const base64 = await blobToBase64(imageBlob);
        setBase64String(base64);
    }
};

此模式确保在图像生成过程中正确的状态管理。

透明背景配置

在图像生成选项中设置 backgroundColor: null 创建透明背景:

const imageBlob = await domToImageByModernScreenshot(canvasDom, {
    backgroundColor: null
});

当图片需要与其他背景合成时,这特别有用。

树状布局配置

图谱使用具有宽水平间距的树状布局:

const graphOptions: RGOptions = {
    reLayoutWhenExpandedOrCollapsed: true,
    defaultExpandHolderPosition: 'right',
    defaultNodeShape: RGNodeShape.rect,
    defaultNodeBorderWidth: 1,
    defaultNodeColor: '#fff',
    defaultLineColor: '#666',
    defaultLineShape: RGLineShape.Curve2,
    defaultJunctionPoint: RGJunctionPoint.lr,
    defaultLineTextOnPath: true,
    layout: {
        layoutName: 'tree',
        from: 'left',
        levelGaps: [400, 400, 400, 400]
    }
};

levelGaps 数组控制树级别之间的间距,创建水平扩展的结构。

创意使用场景

叠加和合成

透明背景图片支持:

  • 文档叠加:将图谱放置在文档内容上而无需白色边框
  • 网站集成:将图谱无缝嵌入网页
  • 视频制作:在视频编辑中使用图谱作为叠加层
  • 演示图层:在演示背景上添加图谱

设计资源创建

透明导出支持:

  • 图标集:为 UI 设计创建基于图标的图标
  • 贴纸包:生成可共享的图谱插图
  • 模板资源:构建可重用的图谱组件
  • 品牌材料:将图谱整合到品牌材料中

多格式导出

准备/恢复模式有助于:

  • PNG 导出:具有透明度的无损压缩
  • SVG 集成:基于矢量的导出以实现可扩展性
  • 批处理:使用一致的设置生成多个图像
  • 自动化工作流:集成到构建管道或 CI/CD 中