Mi scripting de shell es un poco oxidado, así que haga una copia de seguridad de sus imágenes antes de probar este script.
#!/bin/bash
FILES=/path/to/*.jpg
for f in $FILES
do
identify $f | awk '{ split($3, f, "x"); f[1] -= 20; cl = sprintf("jpegtran -crop %dx%d+0+0 %s > new_%s", f[1], f[2], $1, $1); system(cl); }'
done
Puntos a tener en cuenta:
- Ajuste la ruta al valor correcto
- ¿Necesitas *.jpeg?
identify
es un comando imageMagickawk
Agarrará las dimensiones del píxel deidentify
para usar como parámetro (con el ancho reducido por 20px) parajpegtran
Para recortar la imagen- La nueva imagen se guarda como
new_[old_name].jpg
jpegtran
podría ajustar la región de cultivo para que pueda funcionar sin pérdidas. Compruebe que las imágenes resultantes son del tamaño correcto y no un poco más grandes.