python3とpycharmとpygameで画像表示してみた 第2回
pycharm(IDE)+python3(言語)+pygame(ライブラリ)で画像表示 第2回
プロジェクトを作成
画像表示の練習用のプロジェクトを作成
とは言いながら、ぶっちゃけ前回の使いまわし or 前回のプロジェクトにスクリプト*1を追加でいい思います。
少なくとも、スクリプトは前回のものに追加していきます。
(ここでは、プロジェクト名:mygame02、スクリプト名:mygame02.pyとしました*2)
画像を用意
自分で用意、またはWebから、利用可能な画像を用意します。
pygameの公式ガイドによると、利用可能な画像形式は(日本語訳はちょい適当です)。。。
pygame.image.loadコマンドで読み込み可能な画像形式は、基本的に非圧縮BMP形式のみ。
ほかの画像形式をサポートしているバージョン(なんだそれ?)のみ、以下の形式が読み込み可能画像の保存は、以下の形式のみに対応しています。
んーと、先日インストールしたばかりなので、きっとBMP以外の画像形式でも読めるでしょうという見切り発車の元、PNG形式の画像を用意してみました。
*今回使った画像情報*
画像名 | char1.png |
---|---|
画像形式 | PNG |
サイズ | 369x480 |
これをスクリプトがあるフォルダに移動します。これでやっとこ準備完了かなぁ。
所感
前回のところまで、できていれば割と簡単に画像の表示はできるみたいな気がした。
折角なんで、今回使ったクラス?モジュール?のちょっとした開設を付け加えておこうかと思います。
モジュール名 | 機能 | 備考 |
---|---|---|
pygame.image.load | 指定したファイル名の画像を読み込む | 読み込んだ画像から新しいSurfaceを生成 |
pygame.image.save | 指定したSurfaceを画像として保存します | 指定なしはTGA形式の画像に保存*3 |
pygame.image.get_extend | 規定以外のファイルが使えるか確認 | 結果はbooleanで返ってくる |
pygame.image.tostring | 画像を文字形式に変換する | 今は省略 |
pygame.image.fromstring | 画像を表す文字形式のデータからSurfaceを生成 | 今は省略 |
pygame.image.frombuffer | 文字列形式の画像情報から直接Surfaceを生成 | 今は省略 |
読み込まれた画像はSurfaceに変換されます。Surfaceはpygameで画像の情報をメモリ内で保存する形式だと思えばいいのかと。
様々なフォーマットを読み込んでも、pygame内ではSurfaceって共通形式で扱える!かな。
詳しいことは後でやる気あったら書こうかのぉ。
また、画面に画像を張り付けるコマンド
screen.blit(image, (0, 0)) |
---|
imageは画像から生成したSurfaceです。後ろの引数は、表示位置*4で、画像の原点をスクリーンのどこへ張り付けるか、っていう指定。
つぎは、画像を動かしてみようかな。
へば、また!