以下は、GUIからファイルを選択し、PNGに変換して背景を透過し、新しいファイル名を指定できるようにしたコードです。tkinter
を使ってファイルダイアログを作成し、PIL
とrembg
で画像処理を行います。
てくもじ
自分で使う用に、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()
このコードのポイント:
tkinter
を使用したファイル選択:open_file_dialog()
関数でファイルを選択します。- ファイルの保存名を指定:
filedialog.asksaveasfilename()
で保存先とファイル名を指定できます。 - 画像処理と透過:
rembg
で背景を透過し、PIL
でPNGに変換します。
このコードを実行すると、GUIで画像ファイルを選択し、保存先と新しいファイル名を指定できます。
ファイル名も面倒なので考えてもらう
プロンプトは
このプログラムのファイル名も考えて ○○.py
といれると、
このプログラムの内容に合わせて、以下のようなファイル名はいかがでしょうか?
image_transparent_converter.py
“image” は画像処理を意味し、”transparent” は背景の透過処理を表し、”converter” はフォーマットの変換機能を示しています。プログラムの機能が直感的にわかるファイル名です。
と作ってくれる。楽ちん♪