Files
MujicaUI/docs/components/360-image-compare.md
T

1.2 KiB

360 ImageCompare 前后对比

用途

前后两张图片叠放,用滑块分隔对比。

最小示例

before, after := ui.NewBitmap(examplePhoto), ui.NewBitmap(examplePhoto)
split := 0.5
view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	media.ImageCompare(c, before, after, &split, media.ImageCompareOptions{})
}
ui.Render(view, 400, 300, 1)

参数

func ImageCompare(c *ui.Context, before, after ui.ImageSource, split *float64, opts ImageCompareOptions) ChoiceResult

*split 取 0 到 1,表示分隔线位置;超出 panic。两张图都须为 *ui.Bitmap 或 *ui.SVG,盒子按 before 的宽高比。

字段 类型 默认值 含义
BeforeLabel / AfterLabel string "Before" / "After" 两侧标签,也组成无障碍名称。
Disabled bool false 禁用。

状态

分隔线与菱形手柄;两侧标签始终显示,不只靠画面区分。

事件

Changed() 在分隔位置变化后为 true。

键盘操作

按键 作用
← / → 移动 1%
Home / End 最左 / 最右
拖动 任意位置拖动分隔线

限制

  • 两张图都按 Cover 铺满盒子,尺寸不同时会裁切。