[Python] 画像形式をバッチで変更するための簡単な小さなプログラム (完全なコードとプログラムが添付されています)

プログラムのダウンロード アドレス: リンク: https://pan.baidu.com/s/1ser7iEMRS54syvwl1cck1Q?pwd=jr66 
抽出コード: jr66

1. 完全なコード

コードをテストする場合は、使用する前に Python PIL モジュールがインストールされていることを必ず確認してください。

import os
from tkinter import Tk, Button, messagebox
from PIL import Image

# 检查并创建文件夹
def check_and_create_folders():
    if not os.path.exists('Old_Img'):
        os.makedirs('Old_Img')
    if not os.path.exists('New_Img'):
        os.makedirs('New_Img')

# 清空New_Img文件夹
def clear_new_img_folder():
    file_list = os.listdir('New_Img')
    for file_name in file_list:
        file_path = os.path.join('New_Img', file_name)
        if os.path.isfile(file_path):
            os.remove(file_path)

# 图片格式转换函数
def convert_images(image_format):
    old_img_folder = 'Old_Img'
    new_img_folder = 'New_Img'

    # 获取Old_Img文件夹中的图片文件列表
    file_list = os.listdir(old_img_folder)

    for file_name in file_list:
        file_path = os.path.join(old_img_folder, file_name)
        if os.path.isfile(file_path):
            # 打开图片
            image = Image.open(file_path)

            # 构建新的文件名
            new_file_name = os.path.splitext(file_name)[0] + '.' + image_format

            # 保存转换后的图片
            new_file_path = os.path.join(new_img_folder, new_file_name)
            image.save(new_file_path, format=image_format)

    messagebox.showinfo("提示", "转换完成!")

# 创建主窗口
def create_main_window():
    root = Tk()
    root.title("请选择要转换的格式")
    root.geometry('300x200')

    # 清空New_Img文件夹并转换图片
    def convert_btn_click(image_format):
        clear_new_img_folder()
        convert_images(image_format)

    # 创建按钮并绑定事件
    btn_formats = ['jpg', 'png', 'gif']
    for i, format in enumerate(btn_formats):
        btn = Button(root, text=format, command=lambda f=format: convert_btn_click(f))
        btn.place(x=20 + 100 * i, y=80)

    root.mainloop()

# 主程序入口
if __name__ == '__main__':
    check_and_create_folders()
    create_main_window()

2. 使い方チュートリアル

ステップ 1: イメージ ファイルを準備します。変換するイメージ ファイルを、プログラムが存在するディレクトリの「Old_Img」フォルダーにコピーまたは切り取ります。このフォルダーには画像ファイルのみを含めるようにしてください。他のファイルは無視されます。

ステップ 2: プログラムを実行します。この時点で、プログラムは変換されたイメージを保存するために「New_Img」という名前のファイルを自動的に作成します。

 

ステップ 3: 変換する画像形式を選択します: プログラムが実行されると、「変換する形式を選択してください」というタイトルのウィンドウがポップアップ表示されます。ウィンドウには、一般的な画像形式 (jpg、png、gif) に対応するいくつかのボタンが表示されます。

ステップ 4: 画像形式を変換する: 対応するボタンをクリックすると、「Old_Img」フォルダー内の画像が選択した形式に変換されます。変換プロセス中、プログラムは「New_Img」フォルダーをクリアし、変換された写真を「New_Img」フォルダーに保存します。

ステップ 5: 変換結果を確認する: 変換が完了すると、プログラムはプロンプト ボックスをポップアップ表示して、変換が完了したことをユーザーに通知します。「New_Img」フォルダーを開いて、変換された画像ファイルを表示できます。

 

予防:

  • 「Old_Img」フォルダーには変換したい画像ファイルのみが含まれていることを確認してください。他のファイルは無視されます。
  • 変換された画像ファイルは同じ名前のファイルを上書きする可能性があるため、変換前に元の画像をバックアップすることをお勧めします。
  • このプログラムは現在、一般的な画像形式の変換のみをサポートしています。他の形式に変換する必要がある場合は、それに応じてコードを変更してください。

3. 実装アイデア

tkinterこのコードは、ライブラリを使用して、ユーザーが画像の変換先の形式を選択できるグラフィカル インターフェイス ウィンドウを作成する、単純な画像形式変換プログラムを実装します。

  1. check_and_create_folders()この関数は、「Old_Img」と「New_Img」という名前のフォルダーを確認して作成するために使用されます。これら 2 つのフォルダーが存在しない場合は、os.makedirs()関数を使用して作成します。

  2. clear_new_img_folder()「New_Img」フォルダをクリアする機能。「New_Img」フォルダー内のファイルのリストをループし、os.remove()関数を使用して各ファイルを削除します。

  3. convert_images(image_format)この関数は、「Old_Img」フォルダー内の画像を指定された形式に変換するために使用されます。まず、「Old_Img」フォルダー内の画像ファイルのリストを取得し、各ファイルに対して次の処理を実行します。

    • 画像ファイルを開いてImageオブジェクトを作成します。
    • 指定された形式に従って新しいファイル名を作成します。
    • image.save()変換した画像を「New_Img」フォルダーに保存し、保存形式を指定形式で指定する方法を使用します。
  4. create_main_window()メインウィンドウの作成には関数を使用します。このTk()関数を使用しrootて、 という名前のウィンドウ オブジェクトを作成し、ウィンドウのタイトルを「変換する形式を選択してください」、サイズを 300x200 ピクセルに設定します。

  5. convert_btn_click(image_format)この関数は、ボタン クリック イベントのハンドラーです。この関数は、ユーザーがボタンをクリックすると呼び出されます。まず、clear_new_img_folder()「New_Img」フォルダーをクリアする関数を呼び出し、次にconvert_images(image_format)「Old_Img」フォルダー内の画像を指定された形式に変換する関数を呼び出します。

  6. create_main_window()この関数では、Button()一般的な 3 つの画像形式 (「jpg」、「png」、「gif」) に対応する 3 つのボタンが関数を使用して作成されます。各ボタンのテキストには対応する形式名が使用されており、ボタンをクリックするとconvert_btn_click()関数が呼び出され、対応する形式名がパラメータとして渡されます。

  7. 最後に、メイン プログラム エントリでif __name__ == '__main__':、最初にcheck_and_create_folders()関数を呼び出してフォルダーを作成し、次にcreate_main_window()関数を呼び出してメイン ウィンドウを作成します。

おすすめ

転載: blog.csdn.net/zhangawei123/article/details/130920445