![Como redimensionar uma imagem através do terminal?](https://rvso.com/image/833377/Como%20redimensionar%20uma%20imagem%20atrav%C3%A9s%20do%20terminal%3F%20.png)
Eu tenho Ubuntu 10.04. Converti a imagem através do terminal usando o seguinte comando:
convert myfigure.png myfigure.jpg
Mas quero redimensionar a altura e a largura da imagem convertida. Há alguma maneira de fazer isso?
Responder1
Mesmo comando, com uma opção extra:
convert myfigure.png -resize 200x100 myfigure.jpg
ou
convert -resize 50% myfigure.png myfigure.jpg
Para redimensionar vários arquivos, você pode tentar o seguinte comando (conforme sugerido por@teste30)
find . -maxdepth 1 -iname "*.jpg" | xargs -L1 -I{} convert -resize 30% "{}" _resized/"{}"
Responder2
Se você quiser apenas CLI:
sudo apt-get install imagemagick
mogrify -resize 320x240 Image.png
mogrify -resize 50% Image.png
mogrify -resize 320x240 *.jpg
Se você quiser experimentar a GUI:
Instalarnautilus-image-converter
sudo apt-get install nautilus-image-converter
Ele adiciona dois itens de menu de contexto no nautlius para que você possa clicar com o botão direito e escolher "Redimensionar imagem" (o outro é "Girar imagem").
Você pode criar um diretório inteiro de imagens de uma só vez, se quiser, e nem precisa abrir um aplicativo para fazer isso.
Responder3
imgpé um utilitário relativamente novo que redimensiona e gira imagens. Possui mais recursos do que o conversor de imagem nautilus.
Por exemplo:
imgp -x 1366x768 *
Responder4
Como o Ubuntu vem com Python, você também pode usar um script Python para conseguir isso com um pouco mais de controle sobre o que acontece - vejaeste stackoverflowpergunta, por exemplo, scripts. Esses exemplos usam apenas a biblioteca padrão.
Roteiro #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
E outro exemplo onde você só precisa especificar a largura (como variável de largura):
Roteiro #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)
Agora, como fazer isso através do terminal...
sudo nano resizescript.py
Cole um desses blocos de código no editor de texto. Ctrl+x para sair (diga sim para salvar as alterações).
Para usar o Script nº 1:
python resizescript.py yourfilenamehere.jpg
Para usar o Script nº 2:
python resizescript.py yourfilenamehere.jpg
Você deve estar no mesmo diretório dos arquivos de imagem para ambos os scripts. O primeiro reduz a imagem para 128x128 pixels. O segundo script tem 300 pixels de largura e calcula a altura proporcional. Esta é mais uma resposta do Python, mas tecnicamente é feita por meio do terminal.