From 84f3ea9383e2b74c52d99c23c907cee116ab7c64 Mon Sep 17 00:00:00 2001 From: justuser31 Date: Wed, 19 Apr 2023 22:59:49 +0300 Subject: [PATCH] Add image creator --- im_create.py | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 im_create.py diff --git a/im_create.py b/im_create.py new file mode 100644 index 0000000..acb266c --- /dev/null +++ b/im_create.py @@ -0,0 +1,55 @@ +from tkinter import * + +class PixelArt: + + def __init__(self, master): + self.master = master + self.master.title("Pixel Art") + self.canvas = Canvas(self.master, width=128*12, height=128*12, bg="white") + self.canvas.pack(side=LEFT, padx=5, pady=5) + self.colors = ["red", "green", "blue", "white"] + self.current_color = "red" + self.button_frame = Frame(self.master) + self.button_frame.pack(side=LEFT, padx=5, pady=5) + self.export_button = Button(self.button_frame, text="Export", command=self.export_image) + self.export_button.pack(side=TOP, padx=5, pady=5) + self.color_buttons = [] + for color in self.colors: + button = Button(self.button_frame, bg=color, width=3, height=1, command=lambda c=color: self.set_color(c)) + button.pack(side=TOP, padx=5, pady=5) + self.color_buttons.append(button) + for i in range(129): + self.canvas.create_line(i*12, 0, i*12, 128*12, fill="white") + self.canvas.create_line(0, i*12, 128*12, i*12, fill="white") + self.canvas.bind("", self.draw_pixel) + + def draw_pixel(self, event): + x = int(event.x / 12) + y = int(event.y / 12) + self.canvas.create_rectangle(x*12, y*12, x*12 + 12, y*12 + 12, fill=self.current_color) + + def set_color(self, color): + self.current_color = color + + def export_image(self): + pixel_data = [] + for i in range(128): + for j in range(128): + color = self.canvas.itemcget(self.canvas.find_closest(i*12+6, j*12+6), "fill") + if color != "white": + match self.colors.index(color): + case 0: + color = "r" + case 1: + color = "g" + case 2: + color = "b" + pixel_data.append([i, j, color]) + f = open('out.txt', 'w') + f.write(str(pixel_data)) + f.close() + +if __name__ == "__main__": + root = Tk() + pixel_art = PixelArt(root) + root.mainloop()