Pythonで画像サイズ(容量)を小さくする

プログラミング
ゆうすけ
ゆうすけ

ブログに画像を貼りたいんですが、
画像の容量が大きくて読み込みが遅いんです…

資格マフィア
資格マフィア

Pythonでプログラミングすれば、
画像の容量を小さくすることができるぞ。

 

✔️ 本記事のテーマ

 Pythonで画像のサイズ(容量)を小さくする

 

✔️ 読者さんへの前置きメッセージ

本記事は「Pythonで画像のサイズを小さくする方法」について書いています。

 

ブログやメールに画像を使うことは当然のようにあるかと思います。

 

その際に、画像のサイズを気にしているでしょうか?

 

画像のサイズが大きすぎると、それにより弊害が起きることがあります。

 

例えば、ブログにサイズの大きな画像を貼りすぎると、
そのページの読み込みが遅くなってしまいます。

 

画像サイズは小さくできるなら小さいに越したことはありません。

 

そこでこの記事では、
Pythonを使って画像のサイズ(容量)を小さくする方法について解説します。

 

基本的には記事のサンプルコードをそのまま使えば、動くように書いています。

 

では、解説していきましょう。

 

Pythonで画像サイズ(容量)を小さくするコード

Pythonで画像サイズ(容量)を小さくするコード

結論から述べると、以下のコードでPythonの画像サイズを軽くすることができます。

from PIL import Image


input_file = './target.png'

img = Image.open(input_file)
img_p = img.convert('P')
img_p.save(input_file)

ただ、注意点として、このプログラムはpng画像のみを対象にしています。

 

jpg画像のサイズを小さくしたい場合はまずjpgをpngに変換する必要があります。

参考:

 

サンプルコードについて順に解説していきましょう。

Pythonで画像サイズ(容量)を小さくするための前準備

サイズ変更にはPILというPythonライブラリを使用します。

 

PILはサードパーティ製のPythonライブラリなので pip install する必要があります。

 

以下のコマンドをターミナルで実行して、PILをインストールしましょう。

pip install PIL

 

 

from PIL import Image

from PIL import Image

インストールしたPILをimportすることで、
PythonからPILライブラリを使用することができるようになります。

 

ここでは PILImage class をimport しています。

 

画像サイズ(容量)を小さくする処理

img = Image.open(input_file)
img_p = img.convert('P')
img_p.save(input_file)

メイン処理では先ほど import した Image class を使用して画像サイズを変更します。

 

ちなみにメイン処理では、PNG画像を8bitカラーに変換して減色しています。

 

これにより、画質を保ったまま画像容量を大幅に削減することができます。

 

8bitカラーでは通常のPNG画像に比べて、使用可能な色数が少ないので表現力は落ちますが、
ある程度、単調な色彩の画像であれば、見た目を変えずに画像容量だけを削減することができます。

 

画像処理プログラミングを独学で身に付けるための1冊

画像処理プログラミングを独学で身に付けるための1冊

Pythonで画像サイズを小さくする方法について解説しました。

 

もし画像処理プログラミングを身につければ、
画像変換以外にもたくさんの画像処理を行うことができるようになります。

 

もし、画像処理プログラミングについて、
独学でスキルをつけるなら以下の書籍がオススメです。

 

この書籍は画像処理ライブラリのOpenCVの基礎から応用までを
丁寧にかつ詳細に解説しています。

 

OpenCVのほぼ全てを網羅しているとも言えるほどの徹底ぶりなので、
関数のリファレンスとしても使用することができます。

エンジニアとしての自身の価値をチェックする(完全無料)

エンジニアとして、

自分の価値がどれくらいのものかご存知でしょうか?

 

エンジニアとしてIT業界に身を置いていると

今の会社でずっと働くのか、フリーランスとして独立するのか …

と様々な選択肢があります。

 

どの選択肢が正解なのかを見極めるためにも、選択肢を広げるためにも

自身の価値を知っておくことはとても重要です。

 

TechClips ME では、

職務経歴書をアップロードするだけで企業からのスカウトを受けることができます。

▼▼▼▼▼

▲▲▲▲▲

しかもTechClips MEでは想定年収を企業から提示してくれるので、

自身の価値を数字で分かりやすくたしかめることができます。

 

登録はもちろん完全無料なので、一度登録してみると良いかもしれません。

 

コメント

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