From f05f9c7fd4d30db536418ccfe55e95d14d846452 Mon Sep 17 00:00:00 2001 From: Klemek Date: Wed, 25 Aug 2021 01:37:33 +0200 Subject: [PATCH] initial commit --- .gitignore | 3 + README.md | 7 + watchy-image-editor/main.py | 247 ++++++++++++++++++++++++++++++++ watchy-image-editor/preview.png | Bin 0 -> 46788 bytes 4 files changed, 257 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 watchy-image-editor/main.py create mode 100644 watchy-image-editor/preview.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..087e56f --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +__pycache__ +.vscode +.idea \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..df31134 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# Klemek's Watchy + +Soon some watchfaces ... + +Meanwhile I'm making an editor for images (WIP) : + +![preview](./watchy-image-editor/preview.png) \ No newline at end of file diff --git a/watchy-image-editor/main.py b/watchy-image-editor/main.py new file mode 100644 index 0000000..5d8118a --- /dev/null +++ b/watchy-image-editor/main.py @@ -0,0 +1,247 @@ +from tkinter import * +from tkinter import ttk +from tkinter import filedialog +from typing import List, Optional, Tuple +import re + + +class Image: + def __init__(self, comment_name: str, width: int, height: int) -> None: + self.comment_name = comment_name + self.name = None + self.width = width + self.height = height + self.data = [] + + def add_data(self, raw_data: List[str]) -> None: + for v in raw_data: + self.data += list(map(lambda v: int(v), f"{int(v, 16):08b}")) + + def get_pixel(self, x: int, y: int) -> bool: + return self.data[y * self.width + x] == 1 # TODO better + + +class File: + def __init__(self, path: str) -> None: + self.path = path + if path is None: + self.images = [] + else: + self.images = self.read_file() + + def read_file(self) -> List[Image]: + images = [] + + current_image = None + + with open(self.path) as f: + for line in f: + if current_image is not None: + header = re.match( + r"const unsigned char (\w+) \[\] PROGMEM \= \{", + line, + ) + if header: + groups = header.groups() + current_image.name = groups[0] + elif current_image.name is not None: + data = re.match(r"((0x\w+,? ?)+)", line.strip()) + if data: + current_image.add_data( + data.groups()[0].strip().strip(",").split(", ") + ) + else: + images += [current_image] + current_image = None + comment_header = re.match(r"// '(\w+)', (\d+)x(\d+)px", line) + if comment_header: + groups = comment_header.groups() + current_image = Image(groups[0], int(groups[1]), int(groups[2])) + + return images + + +class App(ttk.Frame): + def __init__(self, parent) -> None: + super().__init__(parent) + + self.parent = parent + self.current_file = None + + self.explorer = self.make_explorer() + self.canvas = self.make_canvas() + self.menu_file, self.menu_edit = self.make_menus() + + self.grid_rowconfigure(0, weight=1) + self.grid_columnconfigure(0, weight=1) + + self.open_file(None) + + def make_menus(self) -> Tuple[Menu, Menu]: + menubar = Menu(self.parent) + self.parent["menu"] = menubar + + menu_file = Menu(menubar) + menubar.add_cascade(menu=menu_file, label="File") + + menu_file.add_command(label="New", command=lambda: self.open_file("")) + menu_file.add_command( + label="Open...", + command=lambda: self.open_file(filedialog.askopenfilename()), + ) + menu_file.add_command( + label="Save", + command=lambda: self.save_file(self.current_file.path), + ) + menu_file.add_command( + label="Save As...", + command=lambda: self.save_file(filedialog.asksaveasfilename()), + ) + menu_file.add_command( + label="Close", + command=lambda: self.open_file(None), + ) + + menu_edit = Menu(menubar) + menubar.add_cascade(menu=menu_edit, label="Edit") + menu_edit.add_command( + label="New image", + command=self.add_image, + state="disabled", + ) + menu_edit.add_command( + label="Delete image", + command=self.delete_image, + state="disabled", + ) + + return menu_file, menu_edit + + def update_menus(self) -> None: + for file_index in [2, 3, 4]: + self.menu_file.entryconfigure( + file_index, + state=("normal" if self.current_file is not None else "disabled"), + ) + for edit_index in [0, 1]: + self.menu_edit.entryconfigure( + edit_index, + state=("normal" if self.current_image is not None else "disabled"), + ) + + def make_explorer(self) -> ttk.Treeview: + explorer_container = ttk.Frame(self) + explorer_container.grid(column=0, row=0, sticky=(N, S, W)) + + explorer = ttk.Treeview(explorer_container, columns=("size")) + explorer.heading("#0", text="name") + explorer.heading("size", text="size") + explorer.column("#0", width=100, anchor="w") + explorer.column("size", width=100, anchor="w") + explorer.grid(row=0, column=0, sticky=(N, S, W)) + explorer.bind("<>", self.update) + + yscrollbar = ttk.Scrollbar( + explorer_container, orient="vertical", command=explorer.yview + ) + yscrollbar.grid(row=0, column=1, sticky=(N, S, W)) + explorer.configure(yscrollcommand=yscrollbar.set) + + explorer_container.grid_rowconfigure(0, weight=1) + explorer_container.grid_columnconfigure(0, weight=1) + + return explorer + + def make_canvas(self) -> Canvas: + view = ttk.Frame(self, height=500, width=500) + view.grid(column=1, row=0, sticky=(N, S, E, W)) + + canvas = Canvas(view, width=200, height=200, background="white") + canvas.grid(column=0, row=0, sticky=(N, S, E, W)) + + return canvas + + def save_file(self, path: Optional[str] = None) -> None: + if path == "": + path = filedialog.asksaveasfilename() + # TODO + self.open_file(path) + + def open_file(self, path: Optional[str]) -> None: + ids = self.explorer.get_children() + if len(ids) > 0: + self.explorer.delete(*ids) + + if path is None: + self.parent.title(f"Watchy Image Editor") + self.current_file = None + else: + self.parent.title( + f"Watchy Image Editor - {'New file' if path == '' else path}" + ) + self.current_file = File(path if path != "" else None) + for i, image in enumerate(self.current_file.images): + self.explorer.insert( + "", + "end", + iid=str(i), + text=image.name, + values=[f"{image.width}x{image.height}"], + ) + self.update() + + def add_image(self) -> None: + pass # TODO + + def delete_image(self) -> None: + pass # TODO + + @property + def current_image(self) -> Optional[Image]: + if self.explorer.focus() == "": + return None + else: + return self.current_file.images[int(self.explorer.focus())] + + def update_canvas(self) -> None: + image = self.current_image + scale = 3 + if image is not None: + self.canvas.configure( + width=(image.width * scale), + height=(image.height * scale), + background="white", + ) + self.canvas.create_rectangle( + 0, + 0, + (image.width * scale), + (image.height * scale), + fill="white", + outline="", + ) + for x in range(image.width): + for y in range(image.height): + if image.get_pixel(x, y): + self.canvas.create_rectangle( + x * scale, + y * scale, + (x + 1) * scale, + (y + 1) * scale, + fill="black", + outline="", + ) + + def update(self, *args) -> None: + self.update_menus() + self.update_canvas() + + +if __name__ == "__main__": + root = Tk() + root.option_add("*tearOff", FALSE) + + app = App(root) + app.pack(fill="both", expand=True) + + app.mainloop() diff --git a/watchy-image-editor/preview.png b/watchy-image-editor/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..35574bf0b4219f1c5b24c7ed90a2c062da99ac0f GIT binary patch literal 46788 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 bS;hZ+->TXJu0Sm>SfHt@eIRY0*+2gaBAqtB literal 0 HcmV?d00001