46 lines
1.2 KiB
Markdown
46 lines
1.2 KiB
Markdown
# 128 ChartExport 图表导出
|
||
|
||
## 用途
|
||
|
||
以当前窗口主题离屏绘制图表,返回 PNG 字节,供调用方保存或传输。
|
||
|
||
## 最小示例
|
||
|
||
```go
|
||
view := func(c *ui.Context) {
|
||
mujica.Use(c, mujica.Settings{})
|
||
data, err := mujica.ChartExport(c, func(c *ui.Context) {
|
||
mujica.SparkBar(c, []float64{3, -2, 5}, mujica.SparkBarOptions{Frame: mujica.ChartFrame{Label: "Alms"}})
|
||
}, mujica.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。
|
||
|
||
## 限制
|
||
|
||
图表回调应独立渲染,复用调用方数据;调用方在用户触发导出时调用以控制开销。组件只返回字节。
|