Photoshop Lite Version [best] [2026]

def crop_image(self): if self.image: w, h = self.image.size crop_rect = simpledialog.askstring("Crop", "Enter crop rect (left top right bottom) separated by spaces") if crop_rect: try: l, t, r, b = map(int, crop_rect.split()) self.image = self.image.crop((l, t, r, b)) self.show_image() except: messagebox.showerror("Error", "Invalid format. Use: 10 10 200 200")

def brightness_down(self): if self.image: enhancer = ImageEnhance.Brightness(self.image) self.image = enhancer.enhance(0.8) self.show_image() if == " main ": root = tk.Tk() app = PhotoshopLite(root) root.mainloop() photoshop lite version

def open_image(self): file_path = filedialog.askopenfilename(filetypes=[("Image files", "*.png *.jpg *.jpeg *.bmp *.gif")]) if file_path: self.file_path = file_path self.original = Image.open(file_path) self.image = self.original.copy() self.show_image() def crop_image(self): if self

Install Pillow ( pip install pillow ).

def show_image(self): if self.image: # Resize for display while keeping aspect ratio display_img = self.image.copy() display_img.thumbnail((700, 500)) self.tk_image = ImageTk.PhotoImage(display_img) self.canvas.delete("all") self.canvas.create_image(400, 300, anchor=tk.CENTER, image=self.tk_image) self.canvas.config(scrollregion=self.canvas.bbox("all")) def crop_image(self): if self.image: w

edit_menu = tk.Menu(menubar, tearoff=0) menubar.add_cascade(label="Edit", menu=edit_menu) edit_menu.add_command(label="Crop", command=self.crop_image) edit_menu.add_command(label="Resize", command=self.resize_image)

Iconic One Theme | Powered by Wordpress