Edited at

【備忘録】ebitenで画像のサイズを変換し表示させる


備忘録

hajimehoshi氏によって作られた

2Dゲームを作れるgo言語のフレームワークである "ebiten"を使う


code

func Update(r *ebiten.Image){

var err error
img, _, err = ebitenutil.NewImageFromFile("test.jpeg", ebiten.FilterDefault)
if err != nil {
log.Fatal(err)
}
w, h := img.Size()
imgDst := image.NewRGBA(image.Rect(0,0,w/2,h/2))
draw.CatmullRom.Scale(imgDst, imgDst.Bounds(), img, img.Bounds(), draw.Over, nil)
ebitenImage,_ :=ebiten.NewImageFromImage(imgDst,ebiten.FilterDefault)

NewImageFromFileについて

この関数で画像を読み取り、Decodeしてくれて Image として返してくれる。

image.NewRGBAについて

彼がこれから私が変更したい画像サイズの型を作ってくれる。

draw.CatmullRom.Scaleについて

彼はNewRGBAさんが作った型にドロドロに溶けたImageを流し込む

出来たImageはただのImageなのでebitenで表示できない

ebiten.NewImageFromImageについて

この人が表示できるように加工してくれる

追記

ebitenの作者の方からのコメントがあり、

NewImage系の関数はUpdate関数で毎回読みだす必要はなく初期化の欄に記入する方がいいらしいです。


参考文献

Go 言語で画像のサイズを変更する

ebiten


最後に

もし違うところがあったら教えてください