python3とpycharmとpygameで画像表示してみた 第3回
画像を拡大縮小してみる
使うもの
- 前回のプロジェクト
- 前回のスクリプト
- 前回の画像
前回までで、画像を表示できたのですが、画像を張り付けるときに拡大縮小をしてみます。
画像自体のサイズを変えてもいいのですが、今回は読み込んだ画像をプログラムの中で拡大縮小してみました。
使うモジュール
pygame.transformモジュール |
---|
を使います。
pygame.taransformモジュールには、いくつか拡大縮小ができるメソッドがあります。
モジュール | 機能 | 備考 |
---|---|---|
pygame.taransform.scale | 指定Surfaceの拡大縮小を行う | 速さ重視で拡大縮小 |
pygame.transform.smoothscale | 指定Surfaceの拡大縮小を行う | 見た目重視で拡大縮小*1 |
それぞれ引数は、(surface, (width, height)) で、変換後のsurfaceを返すメソッドになっています。
スクリプトを変更
今回は、pygame.transform.smoothscaleメソッドを使って拡大縮小してみます。
こっちのメソッドにした意味は。。。特にないです。なんとなく。
mainの中をこう変更します。
やっていることは、
- imagerectに元画像の幅と高さを記録
- ratioに拡大縮小率を決定
- ratioとimagerect.widthを使って変換後の画像幅を計算
- ratioとimagerect.heightを使って変換後の画像高を計算
- 元画像(image)を(imagerect.width, imagerect.height)の大きさに変換
となっています。
実行例(ratio=0.2)
ちゃんと縮んでますね!
実行例(ratio=2.0)
こちらもちゃんと拡大されています!