Python - Elaborar programa

 
Vista:

Elaborar programa

Publicado por Carlos (1 intervención) el 20/06/2023 00:10:44
Crear un programa en Python que contenga un menú y que reciba una imagen de entrada y que le permita al usuario haber alguna de las siguientes transformaciones a la imagen:

a) reflexión horizontal
b) reflexión vertical
c) zoom in 50% y zoom de 150 %
d) rotación de 30°, 45° Y 90°

Por favor alguien me puede ayudar, gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder

Elaborar programa

Publicado por Carlos Mauricio (1 intervención) el 12/07/2023 07:50:49
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()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-2
Comentar