PythonでPNG画像をJPG画像に変換する

PythonでPNG画像をJPG画像に変換するプログラミング
ゆうすけ
ゆうすけ

PythonでPNG画像をJPG画像に変換したいです。

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

画像処理ライブラリのOpenCVを使えば変換できるぞ。

 

✔️ 本記事のテーマ

 PythonでPNG画像をJPG画像に変換する

 

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

本記事は「PythonでPNG画像をJPG画像に変換する方法」について書いています。

 

どれだけ通信環境が整った現代でも、画像容量の大きな画像の扱いに困ることは多いでしょう。

 

容量の大きなPNG画像をJPG画像に変換するだけで容量を削減することができます。

 

インターネット上には、PNG画像をJPG画像に変換するサービスも存在しますが、

  • 「インターネットに画像をアップロードしたくない」
  • 「大量の画像を変換したい」

といったケースもあるかと思います。

 

PyhtonではプログラムでPNG画像をJPG画像に変換することができます。

 

この記事ではPythonによる画像変換をサンプルコードとともに解説します。

 

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

 

PythonでPNG画像をJPG画像に変換するための前準備

PythonでPNG画像をJPG画像に変換するための前準備

PNG画像をJPG画像に変換するには、OpenCVというPythonライブラリを使用します。

 

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

 

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

pip install opencv-python

 

 

PythonでPNG画像をJPG画像に変換するコード

PythonでPNG画像をJPG画像に変換するコード

以下のコードでPNG画像をJPG画像に変換することができます。

import glob

import cv2


input_dir = './target_input/'
output_dir = './target_output/'


files = glob.glob(input_dir + '*')

for file in files:
    file_name = file.split('/')[-1]
    rm_ext_file_name = file_name.split('.')[0]

    img = cv2.imread(input_dir + rm_ext_file_name + '.png')
    cv2.imwrite(output_dir + rm_ext_file_name + '.jpg', img, [cv2.IMWRITE_JPEG_QUALITY, 95])

このサンプルコードが何をしているかについて、順に解説していきましょう。

 

ファイルパスの取得

files = glob.glob(input_dir + '*')

この部分で input_dir で指定したディレクトリにある全てのファイルパスを取得しています。

 

files は ファイルパスの数だけ要素のある list になっています。

 

各ファイルごとに処理をかける

for file in files:

ループを回して、各ファイルごとに処理をかけていきます。

 

ファイル名を取り出す

file_name = file.split('/')[-1]

ループの中の file/Users/testuser/Desktop/input_file.png といった形式になっているので、
上記のようにすることでファイル名(= input_file.png )だけを取り出しています。

 

さらに、split() をかけることで 拡張子を除いたファイル名(= input_file )を取り出しています。

rm_ext_file_name = file_name.split('.')[0]

 

 

対象のPNG画像ファイルを読み込む

img = cv2.imread(input_dir + rm_ext_file_name + '.png')

処理対象のPNG画像をOpenCVライブラリを使って読み込みます。

 

画像の読み込みには OpenCVの imread関数 を使います。

OpenCVの imread関数についての詳しい解説は
OpenCVで画像を読み込む方法【Python
の記事で書いてます。

 

これにより、画像データをOpenCVライブラリで扱うことができます。

 

JPG画像ファイルとして変換して保存する

cv2.imwrite(output_dir + rm_ext_file_name + '.jpg', img, [cv2.IMWRITE_JPEG_QUALITY, 95])

先ほど読み込んだ画像データをJPG画像ファイルに変換して保存します。

 

JPG画像への変換と保存は OpenCV の imwrite関数を使います。

OpenCVの imwrite関数についての詳しい解説は
OpenCVで画像を保存する方法【Python】
の記事で書いてます。

 

なお、今回は cv2.imwrite() の第3引数 [cv2.IMWRITE_JPEG_QUALITY, 95] の数値で
変換先のJPG画像の精密度を調整します。

 

この値が大きいほど、画像は精密に、容量は大きくなります。
逆に、この値が小さくすると、画像は粗く、容量は小さくなります。

 

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

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

PNG画像をJPG画像へと変換する方法について解説しました。

 

画像処理プログラミングでは画像変換の他にも様々なことができます。

 

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

 

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

 

OpenCVのほぼ全てを網羅しているとも言えるほどの徹底ぶりなので、
関数のリファレンスとしても使用することができます。
本記事で解説したimwrite関数についても掲載されています。

 

また、Pythonについて基礎から学ぶのであれば、オンラインスクールがオススメです。


オンラインスクールで学習すると、講義も分かりやすく、
サポート体制もしっかりしているので、これからPythonを学ぶ人にもオススメです。


オンラインで無料レッスンを体験することもできるので、
自分にあっているかどうかを確かめることができます。


オススメは以下の3つです。
どのスクールも無料体験が用意されているので、
契約前に自分に最適なスクールを探すことができるでしょう。

✔️オススメのプログラミングスクール ベスト3

これらのプログラミングスクールは全て無料の体験コースがあります。

 

「雰囲気だけでも知りたい」
「プログラミング学習の全体像を知りたい」
「スクールに入るかどうか迷っている」
という方はとりあえず無料カウンセリングを受けてみることをオススメします。

 

無料カウンセリングだけなら費用はかかりませんし、
スクールに通うにしろ、独学で学ぶにしろ、
カウンセリングで得ることができる情報には価値があります

 

プログラミングスクールについては「プログラミングスクールで失敗しないためには【オススメベスト3も紹介】」の記事でも紹介しています。


気になった方はぜひチェックしてみて下さい〜!

コメント

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