【Python】画像加工ライブラリPillow使ってみた!
最近サムネイルの作成で画像加工を良くしますが、結構面倒くさいんですよねw
そこで、サムネイルのリサイズを自動化する方法を考えてみました!
サムネイルを自動で作成するニャ
Pillowとは
PillowはPythonの画像加工ライブラリで、画像の操作や変換、表示などを行うための便利なツールです。
画像の読み込み、保存、サイズ変更、回転、フィルタリング、色変換などの基本的な画像処理ができます。
シンプルな作業に適していて、動作が軽量なことが特徴です。
複雑な作業はOpenCVというライブラリに任せると良いでしょう。
なお、今回の動作環境はGoogle Colaboratoryとします。
作業開始!
今回はGoogle Colaboratoryを使います。
PillowはColaboratoryに初めから組み込まれているのでインストールの必要はないです。
モジュールの読み込み
モジュールを読み込みます。
PILはPillowの前身で、互換性のために読み込みのときにPILとすることになっているそうです。
from PIL import Image
画像の読み込み
今回はこの画像(cat.jpg)を加工していこうと思います。
Image.openで画像を読み込むことができます。
img = Image.open('cat.jpg')
画像の情報を取得
print(img.format) #画像形式 print(img.size) #画像サイズ print(img.mode) #色モード print(img.getpixel((1000,1000))) #左上から数えて(1000,1000)のピクセル値
出力結果
JPEG #画像形式 (1280, 1281) #画像サイズ(幅,高さ) RGB #色モード (255, 255, 255) #ピクセル値
RGBは赤緑青で構成される画像であることを示しています。
ピクセル値は(1000,1000)の赤緑青の数値を表しています。
255が最大値なので、これは白を表します。
画像のリサイズ
resize()を使います。
第一引数に新しいサイズ、第二引数にresampleを指定します。
resampleは次の6つから指定します。
下へ行くほど画質が向上し、処理が遅くなります。
Image.NEAREST
Image.BOX
Image.BILINEAR
Image.HAMMING
Image.BICUBIC
Image.LANCZOS
今回は何百枚も加工するわけではないので、Image.LANCZOSを指定します。
new_img = img.resize((100,100), Image.LANCZOS)
画像を保存する
sava()で保存できます。
第一引数にファイル名、第二引数にクオリティーを指定してください。
95以上は容量が増えるだけで意味がないそうです。
デフォルトは75となっています。
このとき、ファイル形式を変更できます。
今回はイラストなのでpng形式に変更しておきます。
new_img.save('new_cat.png', quality=95)
出力結果
最後に
今回は自動でリサイズする方法について解説しました。
今回使った全コードはこちらになります。
from PIL import Image img = Image.open('cat.jpg') print(img.format) #画像形式 print(img.size) #画像サイズ print(img.mode) #色モード print(img.getpixel((1000,1000))) #左上から数えて(1000,1000)のピクセル値 new_img = img.resize((100,100), Image.LANCZOS) new_img.save('new_cat.png', quality=95)
このブログに画像加工機能を付けることってできるのかな…
できるようだったら近いうちに実装して、誰でも使えるようにしたいと思います!
SNSで感想をシェアしてね↓