見出し画像

【たった5分で完了】Pythonで画像形式を一括変換するスピードテクニック

「Pythonで画像形式を一括変換する方法が知りたい。」
「DALL-Eで生成した画像形式が使いづらい」
「画像形式を一括でPNGにしたい!」

本記事ではこのような方を対象に、Pythonで画像ファイルを一括でPNG形式に変換する方法をご紹介します。

■本記事で分かること
特定のファイル内にある画像ファイルの形式をPythonを使って一括でPNG形式にする方法

■本記事の前提事項
Pythonを使うための環境が整っていること。
環境構築の方法が分からない方はPythonのことを詳しく解説しているサプーさんの動画を参考にしてください!

■本記事の信頼性
私は、本業でChatGPTなどのAIツールを活用して効率化を実現。ほぼ毎日定時で帰宅し、家族との充実した時間を確保している「なおき」といいます。

AIと全く無縁の体育系で文系出身(数学Ⅱで終わりました)の私でもできる時短術をわかりやすく説明できるよう、Xなどを活用して情報発信しています。

前提として、私はPythonのことはほとんど分かっていません。

一度かじろうとしましたが、30代になり本業の責任が増す中、3歳と5歳の娘、オンラインで私以上の収入を稼ぐ妻…自分の時間がほとんどとれない中で腰を据えてプログラミングの勉強ができず、速攻で挫折しました…

しかし!こんな私でも、ChatGPTに「〇〇がしたいけど、Pythonでできる?」と聞いてスクリプトを出力してもらうことで簡単にPythonを実行できるようになりました!

今回は、Pythonでwebp形式の画像ファイルを一括でPNG形式に変換する方法をご紹介します!

1.画像の準備

まずは、ファイル形式を変換したい画像を準備してください。

ここでは、画像形式がwebp形式となり非常に使いづらいDALL-Eで画像を生成し、ダウンロードしてみます。

DALL-Eの画面

DALL-Eで生成した画像を保存すると、画像の種類がMicrosoft Edge HTML(webp)のようになってしまいます。

DALL-Eで生成した画像の保存状況

2.Pythonスクリプトの準備

次に、Pythonスクリプトを準備します。

画像形式を変えるためには、まずスクリプトを実行するためのライブラリと呼ばれるものをWindows PowerShellやコマンドプロンプトでインストールする必要があります。

ライブラリをインストールするため、デスクトップなどの検索を使用して、Windows PowerShellまたはコマンドプロンプトを実行してください。

検索結果の画面

次に、以下のスクリプトを入力してEnterを押してください。

pip install pillow
Windows PowerShellで入力した状況

インストールができたら、画像形式を一括変換するためのスクリプトを準備します。

以下のスクリプトをお使いの実行環境にコピペして下さい。

from PIL import Image  # PillowライブラリからImageクラスをインポート
import os  # ファイルおよびディレクトリの操作に使用するosモジュールをインポート

def convert_webp_to_png(input_folder, output_folder):
    """
    WebP画像をPNGに変換する関数

    Args:
    - input_folder (str): 入力フォルダのパス
    - output_folder (str): 出力フォルダのパス
    """
    # 出力フォルダが存在しない場合は作成する
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    # 入力フォルダ内のすべてのファイルを取得する
    files = os.listdir(input_folder)

    # WebPファイルのみを抽出する
    webp_files = [file for file in files if file.lower().endswith('.webp')]

    # 各WebPファイルをPNGに変換する
    for webp_file in webp_files:
        webp_path = os.path.join(input_folder, webp_file)  # 入力ファイルのパス
        png_file = os.path.splitext(webp_file)[0] + '.png'  # 出力ファイルの名前
        png_path = os.path.join(output_folder, png_file)  # 出力ファイルのパス
        try:
            # WebP画像を開いてPNGに変換する
            with Image.open(webp_path) as img:
                img.save(png_path, 'PNG')
            print(f"Converted {webp_path} to {png_path}")  # 変換したファイル名を表示する
        except Exception as e:
            print(f"Error converting {webp_path}: {e}")  # エラーが発生した場合はエラーメッセージを表示する

# 入力フォルダと出力フォルダのパスを指定する
input_folder = 'input_folder_path'  # WebPファイルが含まれるフォルダのパス
output_folder = 'output_folder_path'  # 変換後のPNGファイルを保存するフォルダのパス

# 変換関数を呼び出す
convert_webp_to_png(input_folder, output_folder)

ちなみに、Pythonの実行環境であるVSCode上で見るとこんな感じ👇になります。

VSCodeにコピペした状況

このままだと、画像が保存されているフォルダのパスが指定されていない状態なので、以下の部分を指定のフォルダのパスにしてください。

【変更する箇所】

    Args:
    - input_folder (str): 入力フォルダのパス
    - output_folder (str): 出力フォルダのパス
# 入力フォルダと出力フォルダのパスを指定する
input_folder = 'input_folder_path'  # WebPファイルが含まれるフォルダのパス
output_folder = 'output_folder_path'  # 変換後のPNGファイルを保存するフォルダのパス

【パスの一例】
以下のように指定の位置にパスを入力してください。

# 実際のフォルダパスを指定する
input_folder = 'C:\\Users\\YourUsername\\Documents\\input_folder'
output_folder = 'C:\\Users\\YourUsername\\Documents\\output_folder'

この時、パスのスラッシュは2つ連続にする必要があるので注意してください。

めんどくさい方はパスの前に「r」を置いても実行できます。

input_folder = r'C:\Users\YourUsername\Documents\input_folder'

フォルダのパスが指定出来たら、あとは実行するだけです!

3.Pythonスクリプトの実行

実行すると、以下のように画像形式が変更されました。

上の4つのファイルが新たにPNGに変換されたファイル
下の4つのファイルが変換前のファイルです。

画像の種類が変更された状況

以上で、ファイル形式の一括変換が完了です!

お疲れ様でした!!

4.まとめ

今回は、「Pythonで画像ファイルを一括でPNG形式に変換する方法」をテーマに紹介しましたが、いかがだったでしょうか?

  1. DALL-Eで画像生成

  2. Pythonスクリプトの準備

  3. Pythonスクリプトの実行

上記の内容が実行できれば、ワンクリックで画像形式を一括変換できるようになります!

恒常的に画像形式を変換する必要がある方は今回のスクリプトのパスを変えれば同じ動作ができるようになるので業務効率化につながるのではないでしょうか?

今回紹介した内容で皆さんの業務が少しでも効率化できれば、スキ、SNSでの紹介をしていただけると大変励みになりますので、何卒よろしくお願いします!

このほか、AI×時短術の知識をX(旧Twitter)で紹介していますので、是非フォローしてください!

この記事が気に入ったらサポートをしてみませんか?