首页 > 后端开发 > Golang > 如何从 Go 图像中提取像素阵列?

如何从 Go 图像中提取像素阵列?

DDD
发布: 2024-12-06 18:07:17
原创
209 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板