1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
from PIL import Image def resize_image_to_min_4mp(image_path, output_path): # Cargar la imagen with Image.open(image_path) as img: width, height = img.size pixels = width * height # Mostrar las dimensiones actuales de la imagen print(f"La imagen original tiene {width}x{height} píxeles, que son {pixels} píxeles en total.") # 4 megapíxeles es 4,000,000 de píxeles min_pixels = 4 * 10**6 if pixels >= min_pixels: print("La imagen ya tiene al menos 4 megapíxeles.") img.save(output_path, quality=95) # Guardar con calidad alta return # Calcular el factor de escalado necesario para llegar a 4 megapíxeles scale_factor = (min_pixels / pixels) ** 0.6 new_width = int(width * scale_factor) new_height = int(height * scale_factor) # Redimensionar la imagen resized_img = img.resize((new_width, new_height), Image.LANCZOS) # Guardar la imagen redimensionada con una alta calidad de salida resized_img.save(output_path, quality=95) # Ajusta el valor de calidad si es necesario print(f"Imagen redimensionada a {new_width}x{new_height} píxeles y guardada en {output_path}.") # Ejemplo de uso image_path = 'imagen_original.jpeg' # Asegúrate de que el archivo esté en la misma carpeta o especifica la ruta completa output_path = 'imagen_redimensionada.jpg' resize_image_to_min_4mp(image_path, output_path) # Verificar el tamaño de la imagen redimensionada with Image.open(output_path) as img: width, height = img.size print(f"Imagen final: {width}x{height} píxeles ({width * height} píxeles en total).") |