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 shotwell
y shotwell --help-all
no 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
convert
comando de ImageMagick es lo que está buscando:Arriba dejará los archivos existentes intactos y copiará los recién rotados para
/tmp
que 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,
mogrify
desde 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 .
jpegtran
logra esto (no probado):fuente
mogrify
no es sin pérdida para archivos JPEG, pero lojpegtran
es.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
view
menú, elijaBrowser
o 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
Tools
y luegoRotate Right
oRotate Left
segú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.png
backup-img-1.png
rotated-img-1.png
img-2.png
El
mv
/cp
tools [bash globbing] solo puede agregar prefijos, es complicado quitarlos (usaría la expansión de parámetros, ewww ...)La
rename
herramienta le permite usar las/before/after/
sintaxis de sustitución (de lased
herramienta) 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}.png
sería:Nota:
cp
lugar demv
, pero luego hay 2 copias del original por ahí (lo malo es que obtiene la concatenación de prefijos, "rotated-backup-
...")-rotate 270
te da 90 ° en sentido antihorario)echo "Rotating ${imgf#backup-} ... ";
después de lasconvert
llamadas (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.sh
Después de guardar este archivo, ejecútelo desde la terminal usando
./rotate.sh folder_containing_images
.fuente