> 백엔드 개발 > Golang > Go 이미지에서 픽셀 배열을 추출하는 방법은 무엇입니까?

Go 이미지에서 픽셀 배열을 추출하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-06 18:07:17
원래의
195명이 탐색했습니다.

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. 저장할 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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿