返回

GoJs中导出图片或SVG:视觉信息的便捷分享

前端

使用 GoJs 轻松导出可视化图形分析

在数据可视化领域,我们经常需要对图表进行修改和调整,以创建更复杂且富有洞察力的结构。保存这些自定义的图表至关重要,而将它们导出为图片或 SVG 格式是一种便捷的分享方式。

GoJs 提供了一系列强大的 API,可以帮助我们轻松导出图片或 SVG 格式的图表。这些 API 如下:

  • go.GraphObject.makeImage 将图形对象导出为图片
  • go.GraphObject.makeSvg 将图形对象导出为 SVG
  • go.Diagram.makeImage 将整个图表导出为图片
  • go.Diagram.makeSvg 将整个图表导出为 SVG

导出图形对象

要将单个图形对象导出为图片或 SVG,可以使用 makeImagemakeSvg 方法。这两个方法需要两个参数:要导出的对象和一个导出选项对象。

导出选项对象允许我们指定导出图像的格式、大小和背景颜色等属性。例如,以下代码将一个名为“myDiagram”的图中的图形对象导出为 PNG 格式,并将其保存为“diagram.png”文件:

import "github.com/gojs/gojs/v20"

func main() {
  diagram := gojs.NewDiagram()

  img := diagram.MakeImage(&gojs.ImageOptions{
    Format: "image/png",
    Width: 600,
    Height: 400,
    Background: "white",
  })

  img.SaveAs("diagram.png")
}

同样,我们可以使用 makeSvg 方法将对象导出为 SVG 文件:

import "github.com/gojs/gojs/v20"

func main() {
  diagram := gojs.NewDiagram()

  svg := diagram.MakeSvg(&gojs.SvgOptions{
    Width: 600,
    Height: 400,
    Background: "white",
  })

  svg.SaveAs("diagram.svg")
}

导出整个图表

要导出整个图表,我们可以使用 makeImagemakeSvg 方法。与导出对象类似,我们需要提供导出选项对象。

例如,以下代码将名为“myDiagram”的图表导出为 PNG 格式,并将其保存为“diagram.png”文件:

import "github.com/gojs/gojs/v20"

func main() {
  diagram := gojs.NewDiagram()

  img := diagram.MakeImage(&gojs.ImageOptions{
    Format: "image/png",
    Width: 600,
    Height: 400,
    Background: "white",
  })

  img.SaveAs("diagram.png")
}

同样,我们可以使用 makeSvg 方法将图表导出为 SVG 文件:

import "github.com/gojs/gojs/v20"

func main() {
  diagram := gojs.NewDiagram()

  svg := diagram.MakeSvg(&gojs.SvgOptions{
    Width: 600,
    Height: 400,
    Background: "white",
  })

  svg.SaveAs("diagram.svg")
}

通过利用这些 API,我们可以轻松地将 GoJs 图表导出为图片或 SVG 格式,以方便地分享和展示我们的可视化图形分析结果。

常见问题解答

  1. 导出图片时如何指定背景颜色?

    在导出选项对象中使用 Background 属性,例如:

    img := diagram.MakeImage(&gojs.ImageOptions{
      Background: "white",
    })
    
  2. 如何使用 CSS 样式自定义导出的 SVG?

    导出 SVG 后,可以在文本编辑器中打开它并添加 CSS 样式,例如:

    svg {
      background-color: #f0f0f0;
    }
    
  3. 导出的图片是否支持透明背景?

    是的,可以使用 PNG 或 SVG 格式导出透明背景的图片。在导出选项对象中设置 Backgroundtransparent,例如:

    img := diagram.MakeImage(&gojs.ImageOptions{
      Format: "image/png",
      Background: "transparent",
    })
    
  4. 导出 SVG 时是否可以指定特定的视图框?

    是的,可以使用 Viewbox 属性指定视图框,例如:

    svg := diagram.MakeSvg(&gojs.SvgOptions{
      Viewbox: "0 0 600 400",
    })
    
  5. 导出的图片或 SVG 的质量受哪些因素影响?

    导出图像或 SVG 的质量受原始图表的质量、导出图像的分辨率和使用的导出格式的影响。