На этот вопрос уже есть ответ здесь:
У меня Ubuntu 10.04. Я преобразовал изображение через терминал, используя следующую команду:
convert myfigure.png myfigure.jpg
Но я хочу изменить высоту и ширину преобразованного изображения. Есть ли способ сделать это?
Та же команда с дополнительной опцией:
convert myfigure.png -resize 200x100 myfigure.jpg
или
convert -resize 50% myfigure.png myfigure.jpg
Чтобы изменить размер нескольких файлов, вы можете попробовать следующую команду (как предложено в ] @ test30 )
find . -maxdepth 1 -iname "*.jpg" | xargs -L1 -I{} convert -resize 30% "{}" _resized/"{}"
Если вы хотите только CLI:
sudo apt-get install imagemagick
mogrify -resize 320x240 Image.png
mogrify -resize 50% Image.png
mogrify -resize 320x240 *.jpg
Если вы хотите попробовать графический интерфейс:
Установить nautilus-image-converter
sudo apt-get install nautilus-image-converter
Это добавляет два контекста пункты меню в Nautlius, так что вы можете щелкнуть правой кнопкой мыши и выбрать «Изменить размер изображения». (Другой «Повернуть изображение»).
Вы можете сделать целый каталог изображений за один раз, если хотите, и вам даже не нужно открывать приложение для этого.
Так как Ubuntu поставлется с Python, можно также использовать сценарий Python для достижения этого с немного большим количеством управления тем, что происходит - посмотрите этот stackoverflow вопрос, например, сценарии. Те примеры пользуются просто стандартной библиотекой.
Сценарий № 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
И другой пример, где только необходимо указать ширину (как переменная ширины):
Сценарий № 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)
Теперь, как сделать это через терминал...
sudo nano resizescript.py
Вставьте один из тех блоков кода в текстовый редактор. Ctrl+x для выхода (говорят да для сохранения изменений).
Использовать Сценарий № 1:
python resizescript.py yourfilenamehere.jpg
Использовать Сценарий № 2:
python resizescript.py yourfilenamehere.jpg
Необходимо быть в том же каталоге как файлы изображения для обоих из этих сценариев. Первый уменьшает изображение к 128x128 пикселям. Второй сценарий делает это 300 пикселей шириной и вычисляет пропорциональную высоту. Это - больше ответа Python, но он сделан на всем протяжении терминала технически.
imgp - это относительно новая утилита, которая изменяет размер изображения и поворачивает его. Он имеет больше возможностей, чем Nautilus-Image-Converter.