Files
claudio 368d6fafea Issue
Code backup
2026-05-10 16:59:01 +02:00

88 lines
3.3 KiB
Python

import os
import tkinter as tk
from tkinter import filedialog
from tkinter import scrolledtext
from tkinter import ttk # ttk for modern themed widgets
from converter import convert_heic_to_jpeg, convert_heic_file
from ctypes import windll
windll.shcore.SetProcessDpiAwareness(1)
class HEICConverterGUI:
def __init__(self, master):
self.master = master
master.title("HEIC to JPEG Converter")
master.geometry("600x500") # Set a default size for the window
# Style configuration
style = ttk.Style()
style.configure("TButton", font=("Helvetica", 12), padding=10)
style.configure("TLabel", font=("Helvetica", 12), padding=5)
style.configure("TCheckbutton", font=("Helvetica", 12), padding=5)
style.configure("TEntry", font=("Helvetica", 12), padding=5)
self.path_label = ttk.Label(master, text="File or Directory Path:")
self.path_label.pack(anchor='w', padx=10, pady=5)
self.path_entry = ttk.Entry(master, width=50)
self.path_entry.pack(anchor='w', padx=10, pady=5)
self.browse_button = ttk.Button(master, text="Browse", command=self.browse)
self.browse_button.pack(anchor='w', padx=10, pady=5)
self.remove_var = tk.BooleanVar()
self.remove_check = ttk.Checkbutton(master, text="Remove converted HEIC Files", variable=self.remove_var)
self.remove_check.pack(anchor='w', padx=10, pady=5)
self.overwrite_var = tk.BooleanVar()
self.overwrite_check = ttk.Checkbutton(master, text="Overwrite existing JPEG files", variable=self.overwrite_var)
self.overwrite_check.pack(anchor='w', padx=10, pady=5)
self.recursive_var = tk.BooleanVar(value=True)
self.recursive_check = ttk.Checkbutton(master, text="Search subdirectories", variable=self.recursive_var)
self.recursive_check.pack(anchor='w', padx=10, pady=5)
self.convert_button = ttk.Button(master, text="Convert", command=self.convert)
self.convert_button.pack(anchor='w', padx=10, pady=5)
# Console Output
self.console_output = scrolledtext.ScrolledText(master, width=80, height=20, wrap=tk.WORD)
self.console_output.pack(anchor='w', padx=10, pady=10)
def browse(self):
file_path = filedialog.askdirectory()
self.path_entry.delete(0, tk.END)
self.path_entry.insert(0, file_path)
def convert(self):
path = self.path_entry.get()
remove = self.remove_var.get()
overwrite = self.overwrite_var.get()
recursive = self.recursive_var.get()
output_text = ""
if os.path.isdir(path):
output_text += f'Converting HEIC files in directory {path}\n'
converted = convert_heic_to_jpeg(path, recursive, overwrite, remove)
output_text += f'Successfully converted {len(converted)} files\n'
elif os.path.isfile(path):
output_text += f'Converting HEIC file {path}\n'
convert_heic_file(path, os.path.splitext(path)[0] + ".jpg", overwrite, remove)
output_text += 'Successfully converted file\n'
else:
output_text += f'Don\'t know what to do with {path}\n'
self.console_output.insert(tk.END, output_text)
self.console_output.see(tk.END)
def main():
root = tk.Tk()
gui = HEICConverterGUI(root)
root.mainloop()
if __name__ == '__main__':
main()