41 lines
668 B
Go
41 lines
668 B
Go
package image
|
|
|
|
import (
|
|
imglib "image"
|
|
"image/draw"
|
|
|
|
// image codecs
|
|
_ "image/png"
|
|
|
|
"zworld/assets"
|
|
"github.com/vkngwrapper/core/v2/core1_0"
|
|
)
|
|
|
|
type Data struct {
|
|
Width int
|
|
Height int
|
|
Format core1_0.Format
|
|
Buffer []byte
|
|
}
|
|
|
|
func LoadFile(file string) (*Data, error) {
|
|
imgFile, err := assets.Open(file)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
img, _, err := imglib.Decode(imgFile)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
rgba := imglib.NewRGBA(img.Bounds())
|
|
draw.Draw(rgba, rgba.Bounds(), img, imglib.Point{0, 0}, draw.Src)
|
|
|
|
return &Data{
|
|
Width: rgba.Rect.Size().X,
|
|
Height: rgba.Rect.Size().Y,
|
|
Format: FormatRGBA8Unorm,
|
|
Buffer: rgba.Pix,
|
|
}, nil
|
|
}
|