ImageMagick es una herramienta magnífica para edición de fotos desde línea de comando o por lotes y este es un truco al que recurro frecuentemente para adaptar un conjunto de fotos para visualización desde un dispositivo como un marco digital o para subir a una red social.
Esta es la situación:
Se tiene un conjunto de imágenes de diferentes tamaños y hay que convertirlas para que no superen un determinado máximo. O sea, queremos disminuir imágenes quesean mayores que un determinado límite (en este ejemplo 1920 pixels) pero manteniendo el factor de forma y, sin modificar aquellas imágenes que de por sí sean menores que este máximo. Si la imagen a escalar fuera img_1.jpg
y quisiéramos dejar la versión escalada en el subdirectorio Web
, el comando es:
convert img_1.jpg -resize "1920\>" Web/img_1.jpg
También existe una versión similar para el caso en el que querramos limitar sea el lado menor de la imagen. En caso que el lado menor de la imagen no deba superar 1080 pixels el comando es:
$ convert img_1.jpg -resize "1080^>" Web/img_1.jpg
Debemos tener en cuenta que, en el caso de querer utilizar parallel debemos escapar los símbolos >
y ⁁^
:
$ parallel --jobs -1 convert {} -resize "1080\^\>" Web/{} ::: *.jpg