Tengo un directorio con mucha imagen pero están en una orientación incorrecta. Quiero rotar las imágenes para corregir la orientación (principalmente ± 90 o ). Usando el visor de imágenes (foto de shotwell) puedo rotarlos individualmente haciendo clic en el botón rotar, pero eso es demasiado tedioso.
Miré man shotwelly shotwell --help-allno hay nada que explique cómo invocar el comando rotar desde la línea de comandos.
¿Hay alguna forma de invocar el comando rotar de shotwell (o cualquier otro visor) desde la terminal? O cualquier otro método para rotar imágenes también es bienvenido.
command-line
scripts
images
shotwell
pranphy
fuente
fuente

Respuestas:
Si está buscando una implementación de bash puro, el
convertcomando de ImageMagick es lo que está buscando:Arriba dejará los archivos existentes intactos y copiará los recién rotados para
/tmpque pueda moverlos o copiarlos en otro lugar o incluso reemplazar los existentes después de la conversión y después de la verificación .(y funcionará en todas las versiones recientes de Ubuntu, ya que es un software estándar)
fuente
Esto copiará, rotará y cambiará el nombre de sus archivos.
Si aún desea dejar intactos los archivos originales, este método puede funcionar bien para usted ...
Tenga en cuenta que esto distingue entre mayúsculas y minúsculas: si sus archivos se llaman * .jpg, reemplácelos con minúsculas (o * .png ...) en consecuencia.
fuente
Si desea sobrescribir en el lugar,
mogrifydesde la suite ImageMagick parece ser la forma más fácil de lograr esto:PRUEBA : Este no es un método de rotación sin pérdida para archivos JPEG, https://www.imagemagick.org/discourse-server/viewtopic.php?t=5899 .
jpegtranlogra esto (no probado):fuente
mogrifyno es sin pérdida para archivos JPEG, pero lojpegtranes.Así es como lo hago:
Instalar gThumb
Abre nautilus y ve a tu directorio de imágenes. Haga clic derecho sobre uno y elija
Open with -> gthumb.Debajo del
viewmenú, elijaBrowsero presione la Esctecla. Esto abrirá el navegador del directorio que muestra todas sus imágenes.Presione Ctrly seleccione las imágenes que desea rotar o selecciónelas todas mediante Ctrl+ A.
En la barra de herramientas, seleccione
Toolsy luegoRotate RightoRotate Leftsegún su preferencia.fuente
Una buena solución es hacer un conjunto de copias de seguridad (por ejemplo, con prefijo
backup-), rotar los archivos originales produciendo un conjunto de archivos nuevos (con prefijo, por ejemplorotated-), dándole un conjunto deimg-1.pngbackup-img-1.pngrotated-img-1.pngimg-2.pngEl
mv/cptools [bash globbing] solo puede agregar prefijos, es complicado quitarlos (usaría la expansión de parámetros, ewww ...)La
renameherramienta le permite usar las/before/after/sintaxis de sustitución (de lasedherramienta) para intercambiar ese prefijo de salvaguarda y sobrescribir los archivos originales, por lo que su proceso general para un conjunto determinado de imágenesimg-{1..n}.pngsería:Nota:
cplugar demv, pero luego hay 2 copias del original por ahí (lo malo es que obtiene la concatenación de prefijos, "rotated-backup-...")-rotate 270te da 90 ° en sentido antihorario)echo "Rotating ${imgf#backup-} ... ";después de lasconvertllamadas (antesdone)para una forma más compacta (por ejemplo un conjunto de archivos numerados), utilizar un poco de expansión de parámetros como
echo "$(echo ${imgf#backup-img-} | cut -d\. -f 1)...";en vez(No puede eliminar el prefijo y el sufijo en la misma expansión de bash param, por lo tanto, use
cut)Luego, después de la verificación, no ha estropeado, elimine las imágenes volviéndolas al original
fuente
Puede copiar / pegar este código y guardarlo como
rotate.shDespués de guardar este archivo, ejecútelo desde la terminal usando
./rotate.sh folder_containing_images.fuente