Issue
Code backup
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user