Cómo crear una automatización en Python para Google Colab que redimensione y recorte imágenes automáticamente en formato WebP sin pérdida
¿Tienes un montón de imágenes y necesitas redimensionarlas a un tamaño fijo como 380×250 píxeles sin perder calidad ni deformar el contenido? ¿Quieres hacerlo gratis y sin instalar ningún software? Entonces este tutorial es para ti.
Hoy te enseñamos cómo usar Google Colab (un entorno gratuito en la nube) para redimensionar y recortar automáticamente tus imágenes, convirtiéndolas a formato WebP sin pérdida de calidad, ideal para proyectos web o tiendas online.
✅ ¿Qué hace exactamente este script?
Con solo ejecutar un bloque de código en Google Colab, conseguirás:
- Redimensionar todas las imágenes de una carpeta de tu Google Drive al tamaño 380×250 píxeles.
- Mantener la proporción original de la imagen (sin deformarla).
- Recortar el centro de la imagen para que encaje exactamente en el tamaño objetivo.
- Eliminar bordes blancos: la imagen rellena todo el área sin dejar espacios.
- Convertir todas las imágenes al formato WebP sin pérdida de calidad.
- Guardar los resultados en una carpeta nueva (
redimensionadas
) dentro de la carpeta original.
🧪 ¿Qué necesitas?
- Una cuenta de Google (para usar Google Drive y Google Colab).
- Una carpeta en tu Drive con las imágenes que quieres procesar.
- Este script de Google Colab que te dejamos a continuación.
💻 Código para ejecutar en Google Colab
- Abre Google Colab.
- Crea un nuevo cuaderno (archivo nuevo).
- Copia y pega este código en una celda:
pythonCopiarEditarfrom PIL import Image
import os
from google.colab import drive
# Montar Google Drive
drive.mount('/content/drive')
# 📁 Cambia esto por el nombre real de tu carpeta en "Mi unidad"
carpeta_nombre = 'imagenes_originales' # Ajusta el nombre si es necesario
input_folder = f'/content/drive/MyDrive/{carpeta_nombre}'
output_folder = os.path.join(input_folder, 'redimensionadas')
# Verificar que la carpeta exista
if not os.path.exists(input_folder):
raise Exception(f"La carpeta '{input_folder}' no existe. Revisa el nombre o la ubicación en tu Google Drive.")
# Crear carpeta de salida si no existe
os.makedirs(output_folder, exist_ok=True)
# Mostrar los archivos en la carpeta
print("📂 Archivos encontrados:")
archivos = os.listdir(input_folder)
print(archivos)
# Tamaño deseado
target_width, target_height = 380, 250
# Función para redimensionar y recortar
def resize_and_crop(image_path, target_width, target_height):
image = Image.open(image_path).convert("RGB")
original_width, original_height = image.size
# Calcular la proporción de escalado
ratio = max(target_width / original_width, target_height / original_height)
new_size = (int(original_width * ratio), int(original_height * ratio))
# Escalar imagen
resized_image = image.resize(new_size, Image.Resampling.LANCZOS)
# Calcular las coordenadas del recorte (centro)
left = (resized_image.width - target_width) // 2
top = (resized_image.height - target_height) // 2
right = left + target_width
bottom = top + target_height
cropped_image = resized_image.crop((left, top, right, bottom))
return cropped_image
# Extensiones válidas
image_extensions = ('.jpg', '.jpeg', '.png', '.bmp', '.webp')
# Procesar todas las imágenes y convertir a WebP sin pérdida
for filename in archivos:
if filename.lower().endswith(image_extensions):
input_path = os.path.join(input_folder, filename)
output_filename = os.path.splitext(filename)[0] + '.webp'
output_path = os.path.join(output_folder, output_filename)
try:
final_image = resize_and_crop(input_path, target_width, target_height)
final_image.save(output_path, 'WEBP', quality=100, method=6, lossless=True)
print(f"✅ {filename} redimensionada sin pérdida y guardada como {output_filename}")
except Exception as e:
print(f"❌ Error al procesar {filename}: {e}")
📁 ¿Dónde pongo mis imágenes?
- Entra a tu Google Drive.
- Crea una carpeta nueva llamada
imagenes_originales
(puedes cambiar el nombre si quieres, pero recuerda editar la variablecarpeta_nombre
en el código). - Sube todas las imágenes que quieras procesar a esa carpeta.
- Ejecuta el código en Colab.
📥 ¿Dónde encuentro las imágenes redimensionadas?
Al terminar, verás una nueva carpeta dentro de tu carpeta de origen llamada redimensionadas
, con todas las imágenes convertidas a formato WebP y perfectamente ajustadas a 380×250 píxeles.
🎯 ¿Para qué sirve este script?
- Crear miniaturas de productos para tiendas online.
- Preparar imágenes para banners, sliders o blogs.
- Acelerar la carga web gracias al formato WebP.
- Mantener la calidad visual profesional en todos tus medios.
💡 ¿Quieres más trucos como este?
En HazteUnCurso.com compartimos guías prácticas para automatizar procesos, aprender marketing, desarrollo web e inteligencia artificial sin complicaciones.
Explora nuestros artículos o suscríbete para no perderte ninguna novedad.