Prueba esto:
from PIL import Image
def reflexion_horizontal(imagen):
return imagen.transpose(Image.FLIP_LEFT_RIGHT)
def reflexion_vertical(imagen):
return imagen.transpose(Image.FLIP_TOP_BOTTOM)
def zoom_in(imagen):
ancho, alto = imagen.size
nueva_imagen = imagen.resize((int(ancho * 1.5), int(alto * 1.5)))
return nueva_imagen
def zoom_out(imagen):
ancho, alto = imagen.size
nueva_imagen = imagen.resize((int(ancho * 0.5), int(alto * 0.5)))
return nueva_imagen
def rotacion(imagen, grados):
return imagen.rotate(grados, expand=True)
# Función para mostrar el menú y obtener la opción del usuario
def mostrar_menu():
print("************ MENÚ ************")
print("1. Reflexión Horizontal")
print("2. Reflexión Vertical")
print("3. Zoom In")
print("4. Zoom Out")
print("5. Rotación 30°")
print("6. Rotación 45°")
print("7. Rotación 90°")
print("8. Salir")
opcion = input("Seleccione una opción: ")
return opcion
# Función principal
def main():
nombre_archivo = input("Ingrese el nombre de la imagen con su extensión: ")
try:
imagen = Image.open(nombre_archivo)
while True:
opcion = mostrar_menu()
if opcion == '1':
imagen = reflexion_horizontal(imagen)
imagen.show()
elif opcion == '2':
imagen = reflexion_vertical(imagen)
imagen.show()
elif opcion == '3':
imagen = zoom_in(imagen)
imagen.show()
elif opcion == '4':
imagen = zoom_out(imagen)
imagen.show()
elif opcion == '5':
imagen = rotacion(imagen, 30)
imagen.show()
elif opcion == '6':
imagen = rotacion(imagen, 45)
imagen.show()
elif opcion == '7':
imagen = rotacion(imagen, 90)
imagen.show()
elif opcion == '8':
break
else:
print("Opción inválida. Intente nuevamente.")
except IOError:
print("No se pudo abrir la imagen. Verifique el nombre y la ubicación del archivo.")
if __name__ == '__main__':
main()