GoJs中导出图片或SVG:视觉信息的便捷分享
2023-10-14 21:13:21
使用 GoJs 轻松导出可视化图形分析
在数据可视化领域,我们经常需要对图表进行修改和调整,以创建更复杂且富有洞察力的结构。保存这些自定义的图表至关重要,而将它们导出为图片或 SVG 格式是一种便捷的分享方式。
GoJs 提供了一系列强大的 API,可以帮助我们轻松导出图片或 SVG 格式的图表。这些 API 如下:
go.GraphObject.makeImage
: 将图形对象导出为图片go.GraphObject.makeSvg
: 将图形对象导出为 SVGgo.Diagram.makeImage
: 将整个图表导出为图片go.Diagram.makeSvg
: 将整个图表导出为 SVG
导出图形对象
要将单个图形对象导出为图片或 SVG,可以使用 makeImage
或 makeSvg
方法。这两个方法需要两个参数:要导出的对象和一个导出选项对象。
导出选项对象允许我们指定导出图像的格式、大小和背景颜色等属性。例如,以下代码将一个名为“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")
}
导出整个图表
要导出整个图表,我们可以使用 makeImage
或 makeSvg
方法。与导出对象类似,我们需要提供导出选项对象。
例如,以下代码将名为“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 格式,以方便地分享和展示我们的可视化图形分析结果。
常见问题解答
-
导出图片时如何指定背景颜色?
在导出选项对象中使用
Background
属性,例如:img := diagram.MakeImage(&gojs.ImageOptions{ Background: "white", })
-
如何使用 CSS 样式自定义导出的 SVG?
导出 SVG 后,可以在文本编辑器中打开它并添加 CSS 样式,例如:
svg { background-color: #f0f0f0; }
-
导出的图片是否支持透明背景?
是的,可以使用 PNG 或 SVG 格式导出透明背景的图片。在导出选项对象中设置
Background
为transparent
,例如:img := diagram.MakeImage(&gojs.ImageOptions{ Format: "image/png", Background: "transparent", })
-
导出 SVG 时是否可以指定特定的视图框?
是的,可以使用
Viewbox
属性指定视图框,例如:svg := diagram.MakeSvg(&gojs.SvgOptions{ Viewbox: "0 0 600 400", })
-
导出的图片或 SVG 的质量受哪些因素影响?
导出图像或 SVG 的质量受原始图表的质量、导出图像的分辨率和使用的导出格式的影响。