画像処理というと大げさですが、PythonのPillow(ピロー)を使って、画像を少し操作してみました。
結論から言うと、Image.open() で読み込めば、crop() で切り抜き、rotate() で回転、resize() で大きさの変更、save() で保存 ができます。
要点
- インストールは
pip install pillow、読み込むときはfrom PIL import Imageです - 画像の大きさは
im.sizeで(横, 縦)のピクセル数がわかります - 切り抜きは、左上と右下の位置を指定します
- 保存するとき、同じ名前のファイルがあると上書きされるので注意してください
Pillowをインストールする
pip install pillow
Pillowは、昔の「PIL(Python Imaging Library)」を引き継いだライブラリです。そのため、インストールするときの名前は「pillow」ですが、読み込むときは昔の名前の「PIL」を使います。
画像を読み込んで表示する
from PIL import Image
im = Image.open(r'C:\Users\ユーザー名\Pictures\masuku.png')
im.show()

Image.open() に画像ファイルの場所(フルパス)を入れると、画像が変数 im に入ります。im.show() で、パソコンの画像を見るソフトが開いて表示されます。
なお、IDLEやJupyterでは、im と書くだけでも画像が表示されます。私は最初そうしていましたが、ふつうのPythonファイルでは表示されないので、show() を使うのが確実です。
ファイルの場所の書き方
Windowsのファイルの場所は \(円マーク)で区切りますが、Pythonでは \ が特別な意味を持つ文字です。場所の前に r を付けて r'C:\Users\...' と書くか、\\ と2つ重ねて書いてください。
画像の大きさを調べる
print(im.size)
結果は (189, 108) でした。この画像は、横189×縦108ピクセルです。
画像を切り抜く(crop)
i = im.crop((10, 20, 150, 70))
i.show()

crop() は、範囲を指定して画像を切り抜きます。カッコの中は(左, 上, 右, 下)の位置です。この例では、横10・縦20ピクセルの位置から、横150・縦70ピクセルの位置までを切り抜いています。できる画像は、横140×縦50ピクセルになります。
画像を回転する(rotate)
ro = im.rotate(180)
ro.show()

rotate() に角度を入れると、その角度だけ回転します。上の例は180度回転させたものです。
大きさを変える(resize)
sm = im.resize((95, 54))
resize() に(横, 縦)のピクセル数を入れると、その大きさになります。縦横の比率を変えたくないときは、元の大きさ(189×108)と同じ比率の数字にしてください。
白黒にする
gray = im.convert('L')
convert('L') で、白黒(グレースケール)の画像になります。
画像を保存する(save)
ro.save(r'C:\Users\ユーザー名\Pictures\masuku2.png')
save() で保存します。フォルダに同じ名前のファイルがあると上書きされ、なければ新しく作られます。元の画像を残しておきたいときは、別の名前にしてください。
まとめ
pip install pillowでインストールし、from PIL import Imageで読み込みますImage.open()で画像を開き、show()で表示します- 切り抜きは
crop()、回転はrotate()、大きさの変更はresize()、白黒はconvert('L')です save()は同じ名前だと上書きされるので注意してください
これくらいの知識があれば、いろいろ組み合わせて画像の編集や整理ができます。Pythonでほかのファイルを扱う方法は、Pythonプログラミング備忘録 ―エクセル操作編にまとめています。