如何從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中文網其他相關文章!