MujicaUI

Charts II · #128

ChartExport 浅色主题渲染快照
浅色 · 渲染快照
ChartExport 深色主题渲染快照
深色 · 渲染快照

128 ChartExport 图表导出

用途

以当前窗口主题离屏绘制图表,返回 PNG 字节,供调用方保存或传输。

最小示例

view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	data, err := chart.ChartExport(c, func(c *ui.Context) {
		chart.SparkBar(c, []float64{3, -2, 5}, chart.SparkBarOptions{Frame: chart.ChartFrame{Label: "Alms"}})
	}, chart.ChartExportOptions{Width: 300, Height: 100, Scale: 2})
	if err != nil {
		panic(err)
	}
	bitmap, err := ui.DecodeBitmap(data)
	if err != nil {
		panic(err)
	}
	ui.Image(c, bitmap).Size(300, 100)
}
ui.Render(view, 400, 160, 1)

参数

chart func(*ui.Context) 必填;Width, Height int 为正 DIP 尺寸;有限 Scale float32 默认 2,负值 panic。

状态

沿用当前主题、密度、本地化、自定义 token 和桌面偏好。导出过程为同步渲染。

事件

返回 ([]byte, error);PNG 编码错误直接返回调用方。

键盘操作

导出触发按钮由调用方提供,支持 Enter 和 Space。

限制

图表回调应独立渲染,复用调用方数据;调用方在用户触发导出时调用以控制开销。组件只返回字节。