Получение номера цвета пикселя из индексированного файла PNG в golang - PullRequest
1 голос
/ 13 мая 2019

Golang позволяет получить значение RGBA для каждого пикселя файла png, используя png.Decode и img.At:

.
file, _ := os.Open("file.png")
img, err := png.Decode(file)
if err != nil {
    log.Fatal(err)
}
for y := 0; y < img.Bounds().Max.Y; y++ {
    for x := 0; x < img.Bounds().Max.X; x++ {
        color := img.At(x, y)
        fmt.Printf("%v", color)
    }
}

Вернет {91 71 0 255} {91 71 2 255} {92 72 1 255} (...) Как получить вместо каждого номера цвета?

1 Ответ

0 голосов
/ 13 мая 2019

просто позвоните в RGBA, как в

for y := 0; y < img.Bounds().Max.Y; y++ {
    for x := 0; x < img.Bounds().Max.X; x++ {
        // color := img.At(x, y)
        r,g,b,a := img.At(x, y).RGBA()
        // fmt.Printf("%v", color)
        fmt.Printf("red %d  green %d  blue %d  alpha %d", r,g,b,a)
    }
}

https://blog.golang.org/go-image-package

...