プログラミング

【Python】フォルダ内の画像サイズを一括変更する方法

プログラミング

 

こんにちは。現役医師のほしと(@hoshitodoctor)です。

 

最近『Python』の勉強を始めた超初心者です。

初めはブログ運営の際に便利なプログラムを書いてみようと思っている所存です。

 

まず一つ目は、画像のリサイズです。

ブログ記事を執筆するに当たって、多くの画像を用いると思います。

ファイル内にあるダウンロードした画像のサイズを一括で変更するプログラムを作ってみたので、

アウトプットも兼ねてご紹介します。

 

スポンサーリンク

画像サイズを一括変更するプログラムのソースコード

以下にソースコードを表示します。

from PIL import Image
import glob

files = glob.glob('フォルダのパスを入力/*') #指定したフォルダ内の全てのファイルを取得する

number = 1

img_height = int(input('縦幅(px):')) #入力によって縦幅を取得する
img_width = int(input('横幅(px):')) #入力によって横幅を取得する

for file in files:
    img = Image.open(file)
    print('ファイル名' + str(number) + ':' + img.filename) #画像のファイル名を表示
    print('変更前の画像サイズ:' + str(img.size)) #画像の縦横サイズを表示

    img_resized = img.resize((img_height,img_width))
    img_resized.save(file) #元のファイルを置き換える

    print('↓')
    print('変更後の画像サイズ:' + str(img_resized.size)) #画像の縦横サイズを表示
    number += 1
    print('------------------------------------')

 

実際に、

  • 横幅:750px
  • 縦幅:422px

としてサイズ変更した様子がこちら。

ソースコードの解説

  • Pillow(PIL)、globというモジュールを使用
  • for文で繰り返し処理を実行

Pillow(PIL)、globというモジュールを使用

Pillowは単純な画像処理を行うためのモジュールです。

globモジュールでは、引数に指定されたパターンにマッチするファイルパス名を取得することが出来ます。

「フォルダのパスを入力/*」とすることで、フォルダ内の全てのファイルパス名を取得しました。

 

for文で繰り返し処理を実行

globで取得した複数のファイルパス名に対して、for文で繰り返し画像のリサイズを行いました。

 

 

以上、とてもシンプルですが参考になれば幸いです。

引き続き勉強していきたいと思います。

コメント

タイトルとURLをコピーしました