Heim >Backend-Entwicklung >Golang >Wie extrahiere ich ein Pixel-Array aus einem Go-Bild?

Wie extrahiere ich ein Pixel-Array aus einem Go-Bild?

DDD
DDDOriginal
2024-12-06 18:07:17198Durchsuche

How to Extract a Pixel Array from a Go Image?

So erhalten Sie ein Pixelarray aus einem Go-Bild

In Go können Sie ein Pixelarray aus einem aus einer Datei geladenen Bild abrufen Verwenden des Bildpakets. Dieses Array kann aus dem /mobile/gl-Paket an die texImage2D-Methode des Contex übergeben werden.

Um ein Pixel-Array zu erhalten, führen Sie die folgenden Schritte aus:

  1. Laden Sie das Bild aus einer Datei:

    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)
    }
  2. Erstellen Sie ein zweidimensionales Array zum Speichern des Pixels Werte:

    var pixels [][]Pixel
  3. Durchlaufen Sie die Bildpixel und extrahieren Sie ihre RGBA-Werte:

    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)
    }
  4. Konvertieren Sie die RGBA-Werte in Pixel:

    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)}
    }
  5. Pixel zurückgeben array:

    return pixels

Das zurückgegebene Pixelarray kann an die texImage2D-Methode übergeben werden, um das Bild anzuzeigen.

Das obige ist der detaillierte Inhalt vonWie extrahiere ich ein Pixel-Array aus einem Go-Bild?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn