Heim >Backend-Entwicklung >Golang >Wie rufe ich ein Pixel-Array von einem Go „image.Image' für OpenGL ES 2.0 ab?
In Go stellt die image.Image-Schnittstelle ein Bild dar, das Pixeldaten enthält. Um ein Pixelarray aus einem image.Image zur Verwendung in OpenGL ES 2.0 über die texImage2D-Methode zu erhalten, können Sie die folgenden Schritte ausführen:
type Pixel struct { R int G int B int A int }
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)} }
func getPixels(img image.Image) ([][]Pixel, error) { bounds := img.Bounds() width, height := bounds.Max.X, bounds.Max.Y var pixels [][]Pixel for y := 0; y < height; y++ { var row []Pixel for x := 0; x < width; x++ { row = append(row, rgbaToPixel(img.At(x, y).RGBA())) } pixels = append(pixels, row) } return pixels, nil }
file, err := os.Open("./image.png") if err != nil { fmt.Println("Error: File could not be opened") os.Exit(1) } defer file.Close() pixels, err := getPixels(file) if err != nil { fmt.Println("Error: Image could not be decoded") os.Exit(1) }
Das obige ist der detaillierte Inhalt vonWie rufe ich ein Pixel-Array von einem Go „image.Image' für OpenGL ES 2.0 ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!