webp画像の背景を透過し、PNGで保存するPythonスクリプト

以下は、GUIからファイルを選択し、PNGに変換して背景を透過し、新しいファイル名を指定できるようにしたコードです。tkinterを使ってファイルダイアログを作成し、PILrembgで画像処理を行います。

てくもじ

自分で使う用に、ChatGPTに作ってもらいました。便利。

import tkinter as tk
from tkinter import filedialog
from rembg import remove
from PIL import Image

# ファイル選択ダイアログの設定
def open_file_dialog():
    root = tk.Tk()
    root.withdraw()  # メインウィンドウを非表示にする
    file_path = filedialog.askopenfilename(filetypes=[("Image files", "*.jpg;*.jpeg;*.png")])
    return file_path

# 画像を処理して保存する
def process_image(input_path, output_path):
    input_image = Image.open(input_path)
    output_image = remove(input_image)
    output_image.save(output_path)

# メイン処理
def main():
    input_path = open_file_dialog()
    
    if not input_path:
        print("ファイルが選択されませんでした。")
        return

    # 保存先ファイル名をユーザーに入力してもらう
    output_path = filedialog.asksaveasfilename(defaultextension=".png",
                                               filetypes=[("PNG files", "*.png")])
    
    if not output_path:
        print("保存先ファイル名が指定されませんでした。")
        return

    # 画像処理
    process_image(input_path, output_path)
    print(f"画像が変換され、保存されました: {output_path}")

if __name__ == "__main__":
    main()

このコードのポイント:

  1. tkinterを使用したファイル選択: open_file_dialog()関数でファイルを選択します。
  2. ファイルの保存名を指定: filedialog.asksaveasfilename()で保存先とファイル名を指定できます。
  3. 画像処理と透過: rembgで背景を透過し、PILでPNGに変換します。

このコードを実行すると、GUIで画像ファイルを選択し、保存先と新しいファイル名を指定できます。

ファイル名も面倒なので考えてもらう

プロンプトは

このプログラムのファイル名も考えて ○○.py

といれると、

このプログラムの内容に合わせて、以下のようなファイル名はいかがでしょうか?

image_transparent_converter.py

“image” は画像処理を意味し、”transparent” は背景の透過処理を表し、”converter” はフォーマットの変換機能を示しています。プログラムの機能が直感的にわかるファイル名です。

と作ってくれる。楽ちん♪

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次