Tengo una enorme galería de 12 GB en el servidor, llena de imágenes en varias subcarpetas. Esos archivos son demasiado grandes y no se usan en resolución completa. Necesito cambiar el tamaño de todas las imágenes a 820 px de ancho (manteniendo las proporciones). Entonces mi pregunta es: ¿cómo puedo crear algún tipo de script de rastreo que redimensione todas las imágenes más grandes que 820px y las guarde sobrescribiendo el archivo original?
Espero que puedan ayudarme :-) Gracias de antemano.
linux
images
batch-jobs
G-Gore
fuente
fuente
find . -name "*.jpg" -exec mogrify -resize 820x {} +
los hará todos; Si no desea procesar los de "menos de 820 px", hay algunas opciones aquí .Respuestas:
Las herramientas ImageMagick convert o mogrify harán el trabajo.
Puede obtenerlos a través de su administrador de paquetes o la fuente / rpms aquí: http://www.imagemagick.org/script/binary-releases.php#unix
Uso básico:
Si necesitas recurrencia:
fuente
find . -name '*.jpg' -execdir mogrify -resize '820x620>' {} \;
Úselo
convert
para hacer el trabajo.convert -resize "1024x768>" origIMG destIMG
cambiará el tamaño de origIMG a 1024x768 manteniendo la relación de aspecto y redimensionando solo si la imagen es mayor que 1024, almacenando la nueva imagen en destIMG. Después de eso, puede mover el destIMG al original.Use un bucle para viajar a través de todos sus directorios o use
find
.fuente
find
?