![Как изменить размер изображения через терминал?](https://rvso.com/image/833377/%D0%9A%D0%B0%D0%BA%20%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C%20%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%20%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F%20%D1%87%D0%B5%D1%80%D0%B5%D0%B7%20%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB%3F%20.png)
У меня Ubuntu 10.04. Я конвертировал образ через терминал с помощью следующей команды:
convert myfigure.png myfigure.jpg
Но я хочу изменить высоту и ширину преобразованного изображения. Есть ли способ это сделать?
решение1
Та же команда, но с дополнительной опцией:
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/"{}"
решение2
Если вам нужен только 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
Он добавляет два пункта контекстного меню в Naulius, так что вы можете щелкнуть правой кнопкой мыши и выбрать «Изменить размер изображения» (другой — «Повернуть изображение»).
При желании вы можете создать целый каталог изображений за один раз, и для этого вам даже не придется открывать приложение.
решение3
имгпотносительно новая утилита, которая делает изменение размера и поворот изображения. Имеет больше функций, чем nautilus-image-converter.
Например:
imgp -x 1366x768 *
решение4
Поскольку 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
И еще один пример, где вам нужно указать только ширину (как переменную width):
Сценарий №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, но технически это делается через терминал.