見出し画像

chatGPTに書いてもらった画像一括変換スクリプト(&忘れたプロンプトの推測)

WEBPからPNGへの一括変換スクリプト


これは以前、chatGPTに書いてもらった、フォルダ内の.webp形式の画像ファイルを一括で.png形式に変換するPythonスクリプトです。
とても便利で重宝しています。
ちょっとした命令でchatGPTがさささっと書いてくれました。

import os
from PIL import Image


def convert_and_move_webp_to_png(source_folder):
    done_folder = os.path.join(source_folder, 'done')
    
    # doneフォルダが存在しない場合は作成
    if not os.path.exists(done_folder):
        os.makedirs(done_folder)
    
    # 指定されたフォルダ内の全ファイルをループ処理
    for filename in os.listdir(source_folder):
        # フルパスを取得
        file_path = os.path.join(source_folder, filename)
        
        # ファイルがWEBPの場合の処理
        if filename.lower().endswith('.webp'):
            # WEBPファイルを開く
            with Image.open(file_path) as img:
                # ファイル名を.PNGに変更
                base_filename = os.path.splitext(filename)[0]
                new_filename = f"{base_filename}.png"
                new_file_path = os.path.join(source_folder, new_filename)
                
                # PNGとして保存
                img.save(new_file_path, "PNG")
                
                # オリジナルのWEBPファイルをdoneフォルダに移動
                done_file_path = os.path.join(done_folder, filename)
                os.rename(file_path, done_file_path)
                
            print(f"Converted and moved: {filename} -> {new_filename}")

if __name__ == "__main__":
    source_folder ='◆◆◆/mywork/images'
    convert_and_move_webp_to_png(source_folder)

忘れてしまったプロンプトの推測

さて、この時のプロンプトを削除してしまいましたが、このスクリプトから逆算してプロンプトを書いてもらうとどうなるのか試してみました。

以前、このプログラムを書いてもらいました。その時にお願いしたプロンプトがわからないので、プログラムをもとにわたしがどんなプロンプトを書いたか推測してください。

わたし

このプログラムは、与えられたフォルダ内の.webp形式の画像ファイルを.png形式に変換し、変換したファイルを元のフォルダから別のフォルダに移動するものです。プログラムの機能とコメントから推測すると、おそらく以下のようなプロンプトを与えられたのではないでしょうか。

"あなたのウェブサイトやブログで使用するために、ウェブページ上でサポートされるように、.webp形式の画像を.png形式に変換してください。また、変換が完了したら、元のフォルダから移動して整理する必要があります。この作業を自動化するPythonプログラムを書いてください。"

chatGPT

推測してもらったプロンプトの実行と動作確認

最後に推測してもらったプロンプトでもう一回、スクリプトを書いてもらいました。

指定された要件に基づいて、.webp形式の画像を.png形式に変換し、元のフォルダから別の場所に移動させるPythonプログラムを書きます。このプログラムでは、Pillowライブラリを使用して画像の変換を行います。まだインストールしていない場合は、Pillowをインストールする必要があります。インストールは、以下のコマンドで行えます。

pip install Pillow

chatGPT
import os
from PIL import Image

# 入力ディレクトリと出力ディレクトリのパス
input_dir = 'path/to/input_dir' # .webp画像があるフォルダのパス
output_dir = 'path/to/output_dir' # 変換後の.png画像を移動させるフォルダのパス

# 出力ディレクトリが存在しない場合は作成
if not os.path.exists(output_dir):
    os.makedirs(output_dir)

# 入力ディレクトリ内のすべてのファイルを走査
for filename in os.listdir(input_dir):
    if filename.endswith('.webp'):
        # 元のファイルパス
        original_path = os.path.join(input_dir, filename)
        # 新しいファイル名(.png拡張子)
        new_filename = filename[:-5] + '.png'
        # 出力ファイルパス
        new_path = os.path.join(output_dir, new_filename)
        
        # 画像を開いて.png形式で保存
        image = Image.open(original_path).convert('RGBA')
        image.save(new_path, 'PNG')
        
        # 元のファイルを削除
        os.remove(original_path)

        print(f'{filename}{new_filename} に変換して、{output_dir} に移動しました。')

print('すべての画像の変換と移動が完了しました。')

このスクリプトを実行すると、きちんと画像形式を変換して所定のフォルダに格納してくれます。

特定の行についての処理が何をしているのかも、聞けばAIが答えてくれます。
プログラミング初学者には素晴らしい時代だと思います。

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