44 lines
858 B
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
|
||
|
}
|