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
Freigeben: 2024-12-06 18:07:17
Original
207 Leute haben es durchsucht

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

    var pixels [][]Pixel
    Nach dem Login kopieren
  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)
    }
    Nach dem Login kopieren
  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)}
    }
    Nach dem Login kopieren
  5. Pixel zurückgeben array:

    return pixels
    Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage