Redimensionar imágenes con scripting y ImageMagik
Ajustar automáticamente imágenes para adaptarse a sitios estáticos
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.
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:
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