Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mengekstrak Tatasusunan Pixel daripada Imej Go?

Bagaimana untuk Mengekstrak Tatasusunan Pixel daripada Imej Go?

DDD
Lepaskan: 2024-12-06 18:07:17
asal
209 orang telah melayarinya

How to Extract a Pixel Array from a Go Image?

Cara Mendapatkan Tatasusunan Pixel daripada Imej Go

Dalam Go, anda boleh mendapatkan tatasusunan piksel daripada imej yang dimuatkan daripada fail menggunakan pakej imej. Tatasusunan ini boleh dihantar kepada kaedah texImage2D bagi Contex daripada pakej /mobile/gl.

Untuk mendapatkan tatasusunan piksel, ikuti langkah berikut:

  1. Muatkan imej daripada fail:

    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)
    }
    Salin selepas log masuk
  2. Buat tatasusunan dwi-dimensi untuk menyimpan piksel nilai:

    var pixels [][]Pixel
    Salin selepas log masuk
  3. Lelar melalui piksel imej dan ekstrak nilai RGBAnya:

    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)
    }
    Salin selepas log masuk
  4. Tukar nilai RGBA kepada piksel:

    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)}
    }
    Salin selepas log masuk
  5. Kembalikan piksel tatasusunan:

    return pixels
    Salin selepas log masuk

Susun atur piksel yang dikembalikan boleh dihantar ke kaedah texImage2D untuk memaparkan imej.

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Tatasusunan Pixel daripada Imej Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan