如何从 Go 图像中获取像素数组
在 Go 中,您可以从从文件加载的图像中获取像素数组使用镜像包。该数组可以从 /mobile/gl 包传递给 Contex 的 texImage2D 方法。
要获取像素数组,请按照以下步骤操作:
加载来自文件的图像:
a, err := asset.Open("key.jpeg") if err != nil { log.Fatal(err) } defer a.Close() img, _, err := image.Decode(a) if err != nil { log.Fatal(err) }
创建一个二维数组来存储像素值:
var pixels [][]Pixel
迭代图像像素并提取其 RGBA 值:
bounds := img.Bounds() width, height := bounds.Max.X, bounds.Max.Y for y := 0; y < height; y++ { var row []Pixel for x := 0; x < width; x++ { r, g, b, a := img.At(x, y).RGBA() pixel := rgbaToPixel(r, g, b, a) row = append(row, pixel) } pixels = append(pixels, row) }
将 RGBA 值转换为像素:
func rgbaToPixel(r uint32, g uint32, b uint32, a uint32) Pixel { return Pixel{int(r / 257), int(g / 257), int(b / 257), int(a / 257)} }
返回像素数组:
return pixels
返回的像素数组可以传递给 texImage2D 方法来显示图像。
以上是如何从 Go 图像中提取像素阵列?的详细内容。更多信息请关注PHP中文网其他相关文章!