crea una ventana edicion de imagenes con sus botones
Aquí te muestro un ejemplo de cómo crear una ventana de edición de imágenes con sus botones utilizando la biblioteca `tkinter` en Python: ```python import tkinter as tk from tkinter import filedialog from PIL import Image, ImageTk, ImageEnhance, ImageFilter from tkinter import messagebox class VentanaEdicionImagenes: def __init__(self, root): self.root = root self.root.title("Ventana de Edición de Imágenes") self.root.geometry("800x600") # Crear etiqueta para mostrar la imagen self.etiqueta_imagen = tk.Label(self.root) self.etiqueta_imagen.pack(padx=10, pady=10) # Crear botones self.frame_botones = tk.Frame(self.root) self.frame_botones.pack(padx=10, pady=10) # Botón para abrir imagen self.boton_abrir = tk.Button(self.frame_botones, text="Abrir Imagen", command=self.abrir_imagen) self.boton_abrir.pack(side=tk.LEFT, padx=5, pady=5) # Botón para aumentar brillo self.boton_aumentar_brillo = tk.Button(self.frame_botones, text="Aumentar Brillo", command=self.aumentar_brillo) self.boton_aumentar_brillo.pack(side=tk.LEFT, padx=5, pady=5) # Botón para disminuir brillo self.boton_disminuir_brillo = tk.Button(self.frame_botones, text="Disminuir Brillo", command=self.disminuir_brillo) self.boton_disminuir_brillo.pack(side=tk.LEFT, padx=5, pady=5) # Botón para aumentar contraste self.boton_aumentar_contraste = tk.Button(self.frame_botones, text="Aumentar Contraste", command=self.aumentar_contraste) self.boton_aumentar_contraste.pack(side=tk.LEFT, padx=5, pady=5) # Botón para disminuir contraste self.boton_disminuir_contraste = tk.Button(self.frame_botones, text="Disminuir Contraste", command=self.disminuir_contraste) self.boton_disminuir_contraste.pack(side=tk.LEFT, padx=5, pady=5) # Botón para aplicar filtro de blur self.boton_aplicar_filtro_blur = tk.Button(self.frame_botones, text="Aplicar Filtro de Blur", command=self.aplicar_filtro_blur) self.boton_aplicar_filtro_blur.pack(side=tk.LEFT, padx=5, pady=5) # Botón para guardar imagen self.boton_guardar = tk.Button(self.frame_botones, text="Guardar Imagen", command=self.guardar_imagen) self.boton_guardar.pack(side=tk.LEFT, padx=5, pady=5) # Variable para almacenar la imagen self.imagen = None def abrir_imagen(self): # Abrir imagen desde archivo archivo = filedialog.askopenfilename(title="Abrir Imagen", filetypes=[("Imagenes", ".jpg .jpeg .png .bmp")]) if archivo: self.imagen = Image.open(archivo) self.etiqueta_imagen.config(image=self.mostrar_imagen()) self.etiqueta_imagen.image = self.mostrar_imagen() def aumentar_brillo(self): # Aumentar brillo de la imagen if self.imagen: enhancer = ImageEnhance.Brightness(self.imagen) self.imagen = enhancer.enhance(1.5) self.etiqueta_imagen.config(image=self.mostrar_imagen()) self.etiqueta_imagen.image = self.mostrar_imagen() def disminuir_brillo(self): # Disminuir brillo de la imagen if self.imagen: enhancer = ImageEnhance.Brightness(self.imagen) self.imagen = enhancer.enhance(0.5) self.etiqueta_imagen.config(image=self.mostrar_imagen()) self.etiqueta_imagen.image = self.mostrar_imagen() def aumentar_contraste(self): # Aumentar contraste de la imagen if self.imagen: enhancer = ImageEnhance.Contrast(self.imagen) self.imagen = enhancer.enhance(1.5) self.etiqueta_imagen.config(image=self.mostrar_imagen()) self.etiqueta_imagen.image = self.mostrar_imagen() def disminuir_contraste(self): # Disminuir contraste de la imagen if self.imagen: enhancer = ImageEnhance.Contrast(self.imagen) self.imagen = enhancer.enhance(0.5) self.etiqueta_imagen.config(image=self.mostrar_imagen()) self.etiqueta_imagen.image = self.mostrar_imagen() def aplicar_filtro_blur(self): # Aplicar filtro de blur a la imagen if self.imagen: self.imagen = self.imagen.filter(ImageFilter.GaussianBlur(radius=5)) self.etiqueta_imagen.config(image=self.mostrar_imagen()) self.etiqueta_imagen.image = self.mostrar_imagen() def guardar_imagen(self): # Guardar imagen en archivo if self.imagen: archivo = filedialog.asksaveasfilename(title="Guardar Imagen", filetypes=[("Imagenes", ".jpg .jpeg .png .bmp")]) if archivo: self.imagen.save(archivo) def mostrar_imagen(self): # Mostrar imagen en etiqueta return ImageTk.PhotoImage(self.imagen) if __name__ == "__main__": root = tk.Tk() ventana = VentanaEdicionImagenes(root) root.mainloop() ``` Este código crea una ventana con botones para abrir imagen, aumentar brillo, disminuir brillo, aumentar contraste, disminuir contraste, aplicar filtro de blur y guardar imagen. La imagen se muestra en una etiqueta en la ventana.