Redimensionar imágenes con scripting y ImageMagik

Ajustar automáticamente imágenes para adaptarse a sitios estáticos

Índice

El tema Mainroad en Hugo no redimensiona imágenes automáticamente,
solo las copia desde la carpeta estática.
Por lo tanto, necesitamos preparar un script para redimensionar y recortar imágenes al tamaño adecuado.

678x495 wizard

Cuándo

Tengo varias fuentes de imágenes — el teléfono inteligente y la cámara son las más utilizadas.
Están en diferentes resoluciones y proporciones de aspecto.

Por lo tanto, necesitamos una secuencia de procesamiento:

  • recorte central a la proporción de aspecto
  • redimensionar (reducir) a dos resoluciones. La calidad de JPEG del 80% es suficiente.
    • 235x171
    • 678x495

Dónde

Supongamos que las imágenes de origen están todas en la carpeta ~/tmp/img_src
Necesitamos:

  • mover las imágenes resultantes a las carpetas ~/tmp/img_235x171 y ~/tmp/img_678x495
  • nombrar las imágenes como _235x171.jpg y _678x495.jpg

Cómo

En Ubuntu Linux usaremos imagemagick

sudo apt-get install imagemagick

Paso de recorte:

convert wizard.png -gravity center -extent 11:8 wizarc.jpg
# ahora verificamos la geometría
identify wizard.png wizarc.jpg

Paso de redimensionamiento

convert wizarc.jpg -resize 678x495 -quality 80 -interlace plane wizarc_678x495.jpg
convert wizarc.jpg -resize 235x171 -quality 80 -interlace plane wizarc_235x171.jpg
# ahora verificamos la geometría
identify wizarc.jpg wizarc_678x495.jpg wizarc_235x171.jpg

El 80 es la calidad de JPEG y plane significa JPEG progresivo.
Ayudará a cargar las imágenes más rápido en conexiones lentas,
no solo porque primero se cargará la miniatura, sino también porque el archivo en sí es más pequeño. Al menos en el caso del brujo.

Con bordes

convert wizarc.jpg -resize 676x493 -quality 80 -interlace plane -border 1x1 wizarc_678x495.jpg
convert wizarc.jpg -resize 233x169 -quality 80 -interlace plane -border 1x1 wizarc_235x171.jpg
# ahora verificamos la geometría
identify wizarc.jpg wizarc_678x495.jpg wizarc_235x171.jpg

La imagen resultante que ves en la cabecera de este post y las proporciones de la imagen de origen eran como:

20% del brujo

eso es después de una simple redimensionamiento y agregar borde

convert wizard.png -resize 20% -quality 85 -interlace plane -border 2x2 wizard20.jpg

Otras opciones

nautilus-image-converter

nautilus-image-converter es una extensión de nautilus para redimensionar o rotar imágenes en masa. Para instalar nautilus-image-converter en todas las versiones actualmente admitidas de Ubuntu, abre el terminal y escribe:

sudo apt-get install nautilus-image-converter

Agrega dos elementos del menú contextual en nautlius, así que puedes hacer clic derecho y elegir “Redimensionar imagen”. (El otro es “Rotar imagen”).

Puedes redimensionar toda una carpeta de imágenes de una sola vez, y ni siquiera tienes que abrir una aplicación para hacerlo.

Necesitas reiniciar tu nautilus para ver los nuevos menús contextuales, ejecuta

nautilus -q

y luego haz clic en el icono de la carpeta de inicio para recargar nautilus con el nuevo complemento.

mogrify

El comando mogrify sobrescribe los archivos originales con las imágenes redimensionadas:

mogrify -resize 50% *.png # mantener la proporción de la imagen mogrify -resize 320x240 *.png # mantener la proporción de la imagen mogrify -resize 320x240! *.png # no mantener la proporción de la imagen mogrify -resize x240 *.png # no mantener la proporción de la imagen mogrify -resize 320x *.png # no mantener la proporción de la imagen

Otras herramientas útiles

Obtener detalles meta de la imagen — como resolución, profundidad de bits, etc. — parte del paquete imagemagick.

identify image.jpg 

produciría algo como

image.jpg JPEG 720x482 720x482+0+0 8-bit DirectClass 100KB 0.000u 0:00.009

Convertir imágenes a PDF

convert $(ls -v *.jpg) foobar.pdf
convert $(ls -v *.png) foobar.pdf

Enlaces útiles