CLI AI

Redimensionar imágenes de una carpeta en la terminal

2026-06-24

magick mogrify -resize 800x800 *.png redimensiona todas las imágenes de una carpeta con un solo comando — pero mogrify sobrescribe los archivos originales mientras lo hace, y esa es la trampa que casi nadie menciona. Esto también cubre cómo redimensionar una sola imagen sin deformarla, el bucle de dos líneas que guarda el resultado en una carpeta aparte en vez de destruir los originales, y una medición real que muestra que reducir las dimensiones no siempre reduce el archivo.

1. Redimensionar una imagen manteniendo la proporción

clai
$ clai reduce esta imagen a 320 píxeles en el lado más largo→ magick test1.png -resize 320x320 out1.jpg

320x320 es un recuadro máximo, no un tamaño fijo: ImageMagick mantiene la proporción y ajusta la imagen dentro de él. El original de 800x600 quedó en 320x240.

2. Reducir el tamaño no siempre reduce el archivo

clai
$ clai compara el tamaño del archivo antes y después→ identify -format '%wx%h %b\n' test1.png out1.jpg800x600 382B320x240 1188B

Esto es una medición real, no una suposición. Una imagen PNG de color plano pesaba 382 bytes; tras reducirla a 320x240 y convertirla a JPEG pasó a pesar 1188 bytes — el triple. PNG comprime las áreas planas casi a la perfección, JPEG no está pensado para eso. Comprueba siempre el resultado, no lo des por hecho.

3. Toda la carpeta a la vez, sin riesgo

clai
$ clai reduce todos los png de esta carpeta a 800 píxeles, no toques los originales→ mkdir -p resized && for f in *.png; do magick "$f" -resize 800x800 "resized/$f"; done

Un bucle con una carpeta de destino separada. Las comillas alrededor de $f son obligatorias — sin ellas, el primer nombre de archivo con un espacio rompe todo el proceso.

4. mogrify: rápido, pero irreversible

clai
$ clai reduce todas las imágenes de la carpeta directamente in situ→ magick mogrify -resize 800x800 *.png⚠ CAUTION — overwrites originals, no undo

mogrify existe precisamente para procesar en lote in situ, y por eso es más rápido que un bucle — no hace nada más que sobrescribir en el mismo sitio. Por la misma razón es peligroso: una vez ejecutado, los originales desaparecen. Copia la carpeta antes de lanzarlo.

5. Cambiar el formato de toda la carpeta

clai
$ clai convierte todos los png de esta carpeta a jpeg con calidad 85→ magick mogrify -format jpg -quality 85 *.png

-format crea archivos con la nueva extensión junto a los antiguos — los png originales quedan intactos. Es el único modo de mogrify que no sobrescribe nada.

6. Reducir sin estirar

clai
$ clai reduce solo las imágenes que sean mayores de 1200 píxeles→ magick mogrify -resize '1200x1200>' *.jpg

El símbolo > significa «solo si es más grande». Sin él, las imágenes pequeñas se estiran hasta 1200 y pierden calidad. Las comillas evitan que la shell interprete > como una redirección de salida — el error más común con este flag.

Trampas habituales

  • mogrify sobrescribe los originales. No convert, ni magick file out, sino mogrify específicamente. La única excepción es el modo -format, que crea archivos nuevos.
  • En ImageMagick 7 el comando se llama magick. convert se mantiene por compatibilidad y puede faltar por completo en instalaciones nuevas. magick mogrify funciona en ambas generaciones.
  • -resize sin flag también agranda. Los modificadores: > solo reducir, < solo agrandar, ! ignorar la proporción, ^ llenar el recuadro y recortar.

Preguntas relacionadas

¿Cómo recorto al centro con un tamaño exacto? magick in.jpg -resize '400x400^' -gravity center -extent 400x400 out.jpg — primero llena el recuadro, luego recorta el sobrante.

¿Cómo veo las dimensiones sin abrir el archivo? identify -format '%wx%h %b\n' file.jpg. Para una carpeta entera: identify -format '%wx%h %f\n' *.jpg.

¿Por qué ImageMagick es mejor que un servicio online? Los archivos no salen de tu máquina, no hay límite de cantidad, y un solo comando procesa mil imágenes.

Ver también

CliAI escribe los flags de ImageMagick correctos para lo que describas, redimensionado y conversión de formato incluidos. Instálalo en una línea.