Maison > développement back-end > Golang > Comment extraire un tableau de pixels d'une image Go ?

Comment extraire un tableau de pixels d'une image Go ?

DDD
Libérer: 2024-12-06 18:07:17
original
227 Les gens l'ont consulté

How to Extract a Pixel Array from a Go Image?

Comment obtenir un tableau de pixels à partir d'une image Go

Dans Go, vous pouvez obtenir un tableau de pixels à partir d'une image chargée à partir d'un fichier en utilisant le package d'images. Ce tableau peut être transmis à la méthode texImage2D du Contex à partir du package /mobile/gl.

Pour obtenir un tableau de pixels, suivez ces étapes :

  1. Chargez le image à partir d'un fichier :

    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)
    }
    Copier après la connexion
  2. Créer un tableau bidimensionnel pour stocker le pixel valeurs :

    var pixels [][]Pixel
    Copier après la connexion
  3. Parcourez les pixels de l'image et extrayez leurs valeurs 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)
    }
    Copier après la connexion
  4. Convertissez les valeurs RGBA en pixels :

    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)}
    }
    Copier après la connexion
  5. Renvoyer le pixel array:

    return pixels
    Copier après la connexion

Le tableau de pixels renvoyé peut être transmis à la méthode texImage2D pour afficher l'image.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal