
スマホで撮った写真が、全て右に90度回転してた…。
このままじゃ使えないから、全て元に戻したいんだけど、
Pythonで画像を回転できないの?

なるほど…。
では今回は、「Python(Pillow)で画像を回転させる方法」を
できるだけわかりやすく解説いたします。

Python(Pillow)で画像を回転させる方法
「rotate」を使います。まずは全コードと実行結果をお見せします。
解説は後ほど行います。
全コード
import PIL
from PIL import Image
input_img = Image.open('C:/Utatane/img.jpg')
output_img = input_img.rotate(90)
output_img.save('C:/Utatane/output_img.jpg')
output_img = input_img.rotate(90)
実行結果

事前準備
- Pillowのインストール
画像を加工したり編集したりするには「Pillow」のインストールが必要です。
Pillowのインストール方法
Pillowを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。
pip install Pillow
※Pillowを使用したことがある場合は、このインストール作業は不要です。
インストールに関する詳細や、インストールができなかった場合の対処法は下記記事で解説しております。
また、Pillowの簡単な使い方も紹介しておりますのでご参考ください。
解説
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
インポート
import PIL
from PIL import Image
上記コードにて、画像編集に必要なライブラリである「Pillow」のインポートを行っております。
コードの2行目は、画像を読み込む(開く)のに必要な「Image」というモジュールを使えるようにしています。
「Image」は次項で出てきます。
※「ライブラリ」や「モジュール」についてピンとこない方は、インストールの記事をご参考ください。
画像を取り込み(開く)
input_img = Image.open('C:/Utatane/img.jpg')
上記一文にて編集したい画像ファイルを取り込みする(開く)ことができます。
新しい名前の変数を書いたら、「=(イコール)」を書きます。
変数については、下記記事をご参考ください。
イコールに続けて、「Image.open()」を書いてください。
()内には、読み込みする画像ファイルのフルパスを書いたら完了です。
<テンプレ>
【 変数 = Image.open(‘画像ファイルのフルパス’) 】
()内はフルパスでなくても構いません。
しかしながら、初心者のうちはファイルの場所指定間違いによるエラーを起こしやすいため、
フルパスで指定するのが無難かと思います。
画像を回転
output_img = input_img.rotate(90)
上記一文にて、前項で読み込んだ画像ファイルを回転させることができます。
再び新しい名前の変数を書いたら、「=(イコール)」を書きます。
イコールに続けて、前項で「画像を読み込んだ変数」を書いたら、「.rotate()」を書いてください。
()内に回転させる角度を書いたら完了です。
角度を「90」と指定することで、左に90度回転させることができます。

「10」や「395.7」など、数値であれば指定可能です。
(361なら、1周回って1度回転させたことになる)
※いずれも左回転であることを覚えておいてください。
「-(マイナス)」をつけることで、右に回転させることもできます。
output_img = input_img.rotate(-90)
#右に90度回転する

元に戻す方法としても使えますので、覚えておいてください。
回転させた画像は、変数「output_img」にひとまず格納されます。
画像を出力(保存)
ラストは画像ファイルを出力(保存)する方法です。
前項で編集した画像を出力してみましょう。
output_img.save('C:/Utatane/output_img.jpg')

前項で「回転させた画像」を格納した変数に続けて、「.save()」を書きます。
()内に、回転させた画像の出力先(出力する場所&ファイル名)を指定したら完了です。
※出力先もフルパスで指定するのが無難です
<テンプレ>
【 回転させた画像が入った変数.save(‘出力する場所/ファイル名’) 】
【注意】
「読み込み時のフルパス」と、「出力時のフルパス」を同じにすると、
読み込んだ画像ファイルに上書き保存されてしまいますのでご注意ください。
元画像が無くなってしまうことになりますので、必ず別名で指定してください。
うまく動作しない場合の対処法
エラーが出る
No such file or directory: ○○
これは、読み込むファイルやフォルダが見つからないというエラーです。
読み込むファイルのファイル名と構文のファイル名が一致しているか確認しましょう。
詳しい解説は、下記記事をご参考ください。
○○ is not defined
今まで出てきていない変数などを処理しようとした時に出るエラーです。
変数名などが間違っていないかチェックしましょう。
詳しい解説は、下記記事をご参考ください。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
最後に
PythonのPillowで画像を回転する方法を解説いたしました。
当ブログでは、Pythonに関する情報を配信しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
挫折せずにPythonを独学で学習する方法は特におすすめです。
最後までお読みいただき、ありがとうございました。がんばってください!