tamaño reducir redimensionar jpg imagen image ubuntu imagemagick ubuntu-11.10

redimensionar - reducir tamaño de imagen en ubuntu



¿Cómo cambiar el tamaño de las imágenes en Ubuntu recursivamente dentro de la terminal? (7)

Puedes copiar / pegar este código en ubuntu y guardarlo como "resize.sh"

#! / bin / bash -e

CUR_DIR = `pwd`

cd $ 1

#resize

para archivo en * .jpg;

hacer

convert $ file -resize 50% $ file;

hecho

cd $ CUR_DIR

Después de guardar este archivo, ejecútelo desde la terminal usando "./rotate.sh folder_containing_images"

Para obtener más información, visita installthetech.com

Tengo varias imágenes almacenadas en un conjunto de carpetas organizadas. Necesito volver a clasificar según el tamaño las imágenes a un porcentaje específico recursivo de su directorio principal. Estoy ejecutando Ubuntu 11.10 y prefiero aprender cómo hacerlo directamente desde la terminal.


Extendiendo la respuesta de @betabandido

En caso de que haya espacios en nombres de archivos o carpetas en los que estén las imágenes, entonces uno debe usar -print0 con find y -0 con xargs para evitar cualquier error de análisis.

find . -name "*.jpg" -print0 | xargs -0 convert -resize 50% find . -name "*.jpg" -print0 | xargs -0 mogrify -resize 50%


Puede usar la herramienta imagemagick para cambiar el tamaño del lote.

Mantendrá la relación de aspecto

$ convert dragon.gif -resize 64x64 resize_dragon.gif

No mantendrá la relación de aspecto

$ convert dragon.gif -resize 64x64/! exact_dragon.gif $ cat resize.sh #!/bin/bash for f in `find . -name "*.jpg"` do convert $f -resize 45x60/! $f.resize.jpg done

Cambiará el tamaño de la imagen a 45x60 sin mantener la relación de aspecto en el directorio actual.


Puedes usar imagemagick . Por ejemplo, para cambiar el tamaño de todas las imágenes JPG en el directorio actual al 50% de su tamaño original, podría hacer:

for f in `find . -name "*.jpg"` do convert $f -resize 50% $f.resized.jpg done

Los archivos resultantes tendrán ".jpg" dos veces en sus nombres. Si eso es un problema, puede verificar las siguientes alternativas.

Para recorrer / encontrar los archivos para cambiar el tamaño, también puede usar xargs . Ejemplo:

find . -name "*.jpg" | xargs convert -resize 50%

Esto creará copias de las imágenes. Si solo desea convertirlos en su lugar , puede usar:

find . -name "*.jpg" | xargs mogrify -resize 50%


También funciona si le das la nueva resolución de cambio de tamaño:

convert $f.jpg -size 1024x768 $f.resized.png


También puedes usar

sudo apt-get install nautilus-image-converter

Pero esto solo funciona para la imagen en la carpeta actual. Simplemente instala y luego haz clic con el botón derecho sobre una imagen o varias y elige el tamaño que quieras y ya está.

Creo que esto también usa imagemagick.


hay algunas respuestas como:

find . -name "*.jpg" | xargs convert -resize 50%

esto no funcionará ya que ampliará la lista de esta manera: convert -resize 50% a.jpg b.jpg c.jpg que cambiará el tamaño de a.jpg en c-0.jpg , b.jpg en c-1.jpg y dejar c.jpg intacto.

Por lo tanto, debe ejecutar el comando de cambio de tamaño para cada coincidencia y dar tanto el nombre del archivo de entrada como el nombre del archivo de salida, con algo como:

find . -name "*.jpg" | xargs -n 1 sh -c ''convert -resize 50% $0 $(echo $0 | sed ''s//.jpg/-th/.jpg/'')''

cada coincidencia de find se pasa individualmente por xargs -n 1 al script de cambio de tamaño: sh -c ''convert -resize 50% $0 $(echo $0 | sed ''s//.jpg/-th/.jpg/'')'' . Este script recibe el nombre del archivo en el argumento $0 , usa sed para hacer un nombre de archivo de salida mediante la sustitución del sufijo .jpg original por un -th.jpg one. Y ejecuta el comando de convert con esos dos nombres de archivo.

Aquí está la versión sin xargs pero find -exec :

find -name ''*.jpg'' -exec sh -c ''convert -resize 50% $0 $(echo $0 | sed ''s//.jpg/-th/.jpg/'')'' {} /;