LoginSignup
3
1

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-06-01

備忘録

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

最後に

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

3
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1