Skip to content
On this page

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()函数加载它,该函数将加载图像以在屏幕上完美显示像素。