Raster 光栅
画布。光栅就像一幅图像,但在屏幕上每个像素只画一个点。这意味着随着用户界面的缩放或图像的大小调整,将需要更多的像素来填充空间。为此,我们使用Generator函数,如本例所示-它将用于返回每个像素的颜色。
生成器函数可以是基于像素的(在本示例中,我们为每个像素生成新的随机颜色)或基于完整图像。生成完整的图像(使用canvas.NewRaster())更有效,但有时直接控制像素更方便。
go
package main
import (
"image/color"
"math/rand"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/canvas"
)
func main() {
myApp := app.New()
w := myApp.NewWindow("Raster")
raster := canvas.NewRasterWithPixels(
func(_, _, w, h int) color.Color {
return color.RGBA{uint8(rand.Intn(255)),
uint8(rand.Intn(255)),
uint8(rand.Intn(255)), 0xff}
})
// raster := canvas.NewRasterFromImage()
w.SetContent(raster)
w.Resize(fyne.NewSize(120, 100))
w.ShowAndRun()
}
如果您的像素数据存储在图像中,您可以通过NewRasterFromImage()函数加载它,该函数将加载图像以在屏幕上完美显示像素。