首頁 > 後端開發 > Golang > 如何從 Go 影像中提取像素陣列?

如何從 Go 影像中提取像素陣列?

DDD
發布: 2024-12-06 18:07:17
原創
226 人瀏覽過

How to Extract a Pixel Array from a Go Image?

如何從Go 影像中取得像素陣列

在Go 中,您可以從檔案載入的影像中取得像素陣列使用鏡像包。該陣列可以從 /mobile/gl 套件傳遞給 Contex 的 texImage2D 方法。

要取得像素數組,請依照下列步驟操作:

  1. 載入來自檔案的圖片:

    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. 建立一個二維數組來儲存像素值:

    var pixels [][]Pixel
    登入後複製
  3. 迭代圖像像素並提取其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)
    }
    登入後複製
  4. 將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)}
    }
    登入後複製
  5. 傳回像素數:

    return pixels
    登入後複製

傳回的像素陣列可以傳遞給texImage2D 方法來顯示影像。

以上是如何從 Go 影像中提取像素陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板