¿Cómo cambiar el tamaño de una imagen a través de la terminal?

¿Cómo cambiar el tamaño de una imagen a través de la terminal?

Tengo Ubuntu 10.04. He convertido una imagen a través de la terminal usando el siguiente comando:

convert myfigure.png myfigure.jpg

Pero quiero cambiar el tamaño de la altura y el ancho de la imagen convertida. ¿Hay alguna manera de hacer esto?

Respuesta1

Mismo comando, con una opción extra:

convert myfigure.png -resize 200x100 myfigure.jpg

o

convert -resize 50% myfigure.png myfigure.jpg

Para cambiar el tamaño de varios archivos, puede probar el siguiente comando (como lo sugiere@prueba30)

find . -maxdepth 1 -iname "*.jpg" | xargs -L1 -I{} convert -resize 30% "{}" _resized/"{}"

Respuesta2

Si solo desea CLI:

sudo apt-get install imagemagick
mogrify -resize 320x240 Image.png 
mogrify -resize 50% Image.png
mogrify -resize 320x240 *.jpg

Si quieres probar la GUI:

Instalarnautilus-image-converter

sudo apt-get install nautilus-image-converter

Agrega dos elementos del menú contextual en nautlius para que pueda hacer clic derecho y elegir "Cambiar tamaño de imagen" (el otro es "Girar imagen").

Puedes crear un directorio completo de imágenes de una sola vez si lo deseas y ni siquiera tienes que abrir una aplicación para hacerlo.

Respuesta3

imgpes una utilidad relativamente nueva que cambia el tamaño y la rotación de imágenes. Tiene más funciones que nautilus-image-converter.

Por ejemplo:

imgp -x 1366x768 *

Respuesta4

Dado que Ubuntu viene con Python, también puedes usar un script de Python para lograr esto con un poco más de control sobre lo que sucede; consultaeste desbordamiento de pilapregunta, por ejemplo, guiones. Esos ejemplos usan solo la biblioteca estándar.

Guión #1

import os, sys
import Image

size = 128, 128

for infile in sys.argv[1:]:
    outfile = os.path.splitext(infile)[0] + ".thumbnail"
    if infile != outfile:
        try:
            im = Image.open(infile)
            im.thumbnail(size, Image.ANTIALIAS)
            im.save(outfile, "JPEG")
        except IOError:
            print "cannot create thumbnail for '%s'" % infile

Y otro ejemplo donde solo tienes que especificar el ancho (como variable de ancho):

Guión #2

from PIL import Image
import sys

filename = sys.argv[1:]
basewidth = 300
img = Image.open(filename)
wpercent = (basewidth/float(img.size[0]))
hsize = int((float(img.size[1])*float(wpercent)))
img = img.resize((basewidth,hsize), Image.ANTIALIAS)
img.save(filename) 

Ahora, cómo hacer esto a través de la terminal...

sudo nano resizescript.py

Pegue uno de esos bloques de código en el editor de texto. Ctrl+x para salir (di sí para guardar los cambios).

Para utilizar el guión n.º 1:

python resizescript.py yourfilenamehere.jpg

Para utilizar el guión n.° 2:

python resizescript.py yourfilenamehere.jpg

Debe estar en el mismo directorio que los archivos de imagen de ambos scripts. El primero reduce la imagen a 128x128 píxeles. El segundo script tiene 300 píxeles de ancho y calcula la altura proporcional. Esta es más una respuesta de Python, pero técnicamente se realiza en toda la terminal.

información relacionada