MujicaUI

Media · #357

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

357 CameraPreview 摄像头预览

用途

显示调用方提供的摄像头帧,无帧时显示“无信号”,可切换镜像。

最小示例

frame := media.CameraFrame{Image: examplePhoto, Seq: 1} // a new Seq for each captured frame
mirror := true
view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	media.CameraPreview(c, frame, &mirror, media.CameraPreviewOptions{})
}
ui.Render(view, 400, 300, 1)

参数

func CameraPreview(c *ui.Context, frame CameraFrame, mirror *bool, opts CameraPreviewOptions) ChoiceResult

CameraFrame:Image(标准库 image.Image,nil 为无信号)、Seq(帧序号,复用同一图像缓冲时用新序号触发重绘)。

字段类型默认值含义
Labelstring"Camera"无障碍名称。
Disabledboolfalse禁用镜像切换。

状态

16:9 黑底;镜像按钮开启时有选中底色和下划线。

事件

Changed() 在镜像切换后为 true。

键盘操作

按键作用
Tab聚焦预览
M切换镜像

限制

  • MyGo 的 Painter 不能水平翻转位图(ui/paint.go:834),所以镜像时组件每个新帧复制一份翻转后的像素;高分辨率帧会占用 CPU。
  • 组件不打开摄像头。