Generation

generate functionTue, 17 Dec 2024

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.

Questions about programming?Chat with your personal AI assistant