pixeldos/img.go

44 lines
858 B
Go

package main
import (
"os"
"image"
_ "image/jpeg"
_ "image/gif"
_ "image/png"
log "github.com/sirupsen/logrus"
)
func getImage(path string) [][][4]uint32 {
reader, err := os.Open(path)
if err != nil {
log.Fatalf("Could not load image: %s",err)
}
defer reader.Close()
m, _, err := image.Decode(reader)
if err != nil {
log.Fatal("could not find image in file", err)
}
bounds := m.Bounds()
var pixelmatrix [][][4]uint32
for x := bounds.Min.X; x < bounds.Max.X; x++ {
var xRow [][4]uint32
for y := bounds.Min.Y; y < bounds.Max.Y; y++ {
var pixel [4]uint32
pixel[0], pixel[1], pixel[2], pixel[3] = m.At(x, y).RGBA()
pixel[0] = pixel[0] >>8
pixel[1] = pixel[1] >>8
pixel[2] = pixel[2] >>8
pixel[3] = pixel[3] >>8
xRow = append(xRow, pixel)
}
pixelmatrix = append(pixelmatrix, xRow)
}
return pixelmatrix
}